我知道這個問題已被多次詢問,但在我的情況下,建議的代碼和解決方案並沒有削減它。網絡的回覆仍然是我的情況下,空的,錯誤代碼爲0。Qt網絡回覆爲空
這裏是我的功能:
QString NWork::send(QVector<QString> &data) const{
//QNetworkAccessManager qnam = new QNetworkAccessManager();
QNetworkAccessManager qnam;
try{
QString json = NWork::to_JSON(data);
QByteArray json_data(json.toUtf8());
QNetworkRequest request;
request.setUrl(QUrl(NWork::connection));
request.setRawHeader("Content-Type", "application/json");
request.setRawHeader("Content-Length", json_data);
reply = qnam.post(request, json_data);
//reply = qnam.get(request);
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
QString s(reply -> readAll());
qDebug()<<"code "<<status<<"Content "<<s;
//return QString::fromUtf8(response.data(),response.size());
}catch(std::exception x){
std::cout<<x.what()<<std::endl;
}
return "";
}
製作形式的連接,許多建議像
connect(qnam,SIGNAL(destroyed(QNetworkReply*)),this,SLOT(read(QNetworkReply*)));
有沒有影響所有。請求正在到達PHP腳本,我通過將請求數據寫入文件來了解這一點。它爲每個請求都這樣做。即使使用text/html標頭也不能迴應任何內容。
是的,我已經試過我的PHP腳本與HTML AJAX請求程序,它的工作原理。它寫入文件,並向瀏覽器返回響應。兩種情況下的代碼都相同。
這裏是我的PHP代碼:
header("Access-Control-Allow-Origin: *");
$k = file_get_contents("php://input");
$file = "/file/path/log.k";
//echo $file;
$handle = fopen($file, "a+");
if($handle){
echo $k;
fwrite($handle, $k."\n");
fclose($handle);
}
header("Content-Type: text/html");
echo "line 22 ".$que;
exit(0);
我檢查了我的Apache2錯誤日誌和沒有被調用。爲什麼它不適用於我的情況?