0
私はいくつかのjson-CodeをC++からPython Flask Rest Apiに渡そうとしています。しかし、生憎これは動作しませんし、私のミスが表示されない:(libcurlがjson-Dataを送信しない
これは私のCコードです:
#include <stdio.h>
#include <curl/curl.h>
#include <string>
using namespace std;
int main(void)
{
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "localhost:5000/todo/api/v1.0/tasks/debug");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"title\" : \"The Title\"}");
struct curl_slist *headers = NULL;
curl_slist_append(headers, "Accept: application/json");
curl_slist_append(headers, "Content-Type: application/json");
curl_slist_append(headers, "charsets: utf-8");
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
これはフラスコ機能である:
#POST DEBUG
@app.route("/todo/api/v1.0/tasks/debug", methods=['POST'])
def echo():
print(request.json)
return "ReturnString \n"
出力フラスコ - サーバーの外観は次のようになります。
None
127.0.0.1 - - [12/Jul/2017 12:49:15] "POST /todo/api/v1.0/tasks/debug HTTP/1.1" 200 -
したがって、json-Dataはフラスコに渡されないように思われますn。 私は基本的に同じテキストで試してみました。
curl-Callでコマンドラインから同じことを試してみると、うまくいきます。 カール・コマンド:フラスコ-Serverから
curl -i -H "Content-Type: application/json" -X POST -d '{"title":"Read a book"}' http://localhost:5000/todo/api/v1.0/tasks/debug
出力:
{'title': 'Read a book'}
127.0.0.1 - - [12/Jul/2017 13:11:54] "POST /todo/api/v1.0/tasks/debug HTTP/1.1" 200 -
任意のヘルプ?
あなたは[ 'get_jsonを()'](使用してみてくださいでしたhttp://flask.pocoo.org /docs/0.12/api/#flask.Request.get_json)代わりに? – Bovarysme
私は試みましたが、どちらの場合も「なし」です – Andre