我正在尝试将curl调用转换为Http,但是无论我使用什么选项,响应代码始终为400。这是相关的代码段。如果人们能指出我在这里缺少的内容,将不胜感激:
// Java side
url = new URL(myUrl);
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestProperty("Accept", "application/json");
urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
urlConnection.setRequestProperty("Connection", "Keep-Alive");
urlConnection.setRequestProperty("Charset", "UTF-8");
urlConnection.setRequestProperty("Accept", "*/*");
urlConnection.setRequestMethod("POST");
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.connect();
DataOutputStream writer = new
DataOutputStream(urlConnection.getOutputStream());
writer.writeBytes(buf);
writer.flush();
writer.close();
int responseCode = urlConnection.getResponseCode();
Log.w(TAG, "responseCode = " +responseCode); // Always 400
// Native side
curl_easy_setopt(curl, CURLOPT_URL, myUrl);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, buf);
curl_mem_t apiTokenKey;
memset(&apiTokenKey, 0, sizeof(curl_mem_t));
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_mem_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *) &apiTokenKey);
rc = curl_easy_perform(curl);
printf("rc = %d\n", rc); // Always 0