このリンクから見つかった例を機能させようとしています。
GET
およびDELETE
メソッドは機能していますが、 および に問題がPUT
ありPOST
ます。サーバーからの返信: Bad Request。qDebug()
私はこのエラーが発生します:
QNetworkReply::NetworkError(ProtocolInvalidOperationError)
httprequestworker.cppに、リクエスト タイプを次のように変更しました。
request_content.append("Content-Type: application/fhir+json");
コンピューターからJSONファイルのコンテンツを取得し、サーバーへのリクエストの入力全体を実行するための私の関数は次のとおりです。
void MainWindow::on_pushButton_clicked()
{
QString url_str = "http://hapi.fhir.org/baseDstu3/Patient/4705560";
HttpRequestInput input(url_str, "PUT");
QString settings;
QFile file;
file.setFileName("C:/Users/Lauri/Desktop/FHIR/Omia testeja/themostsimplepatientJSON.json");
file.open(QIODevice::ReadOnly | QIODevice::Text);
settings = file.readAll();
file.close();
settings.remove(QRegExp("[\\n]"));
qDebug() << settings;
settings.toUtf8();
input.add_var("key1", settings);
HttpRequestWorker *worker = new HttpRequestWorker(this);
connect(worker, SIGNAL(on_execution_finished(HttpRequestWorker*)), this, SLOT(handle_result(HttpRequestWorker*)));
worker->execute(&input);
}
アップロードしたい単純な JSON は次のとおりです。
{
"resourceType": "Patient",
"text": {
"status": "generated",
"div": "<div xmlns='http://www.w3.org/1999/xhtml'>This is a test patient<a name='mm'/></div>"
},
"name": [
{
"use": "usual",
"prefix": [
"Mr"
],
"given": [
"Teppo",
"Testi"
],
"family": "Testinen"
}
],
"telecom": [
{
"value": "123456789",
"system": "phone",
"use": "home"
}
],
"gender": "male",
"birthDate": "2018-08-21"
}
POST
郵便配達員やPUT
その他のツールでできたので、JSONファイルは正しいはずです。私が行方不明であることは明らかですか?
郵便配達員からのキャプチャ:
で、qDebug()
JSON の読み取りが成功したことがわかります。私は解決策を見つけようとしましたProtocolInvalidOperationError
が、成功しませんでした。