Android下的curl(工作)与HttpURLConnection(失败)

Android下的curl(工作)与HttpURLConnection(失败),android,curl,httpurlconnection,Android,Curl,Httpurlconnection,我试图将curl调用转换为Http,但无论使用什么选项,响应代码始终为400。下面是相关的代码片段。如果大家能指出我在这里遗漏了什么,我将不胜感激: // Java side url = new URL(myUrl); urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestProperty("Accept", "application/json"); urlConnection

我试图将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

您的URL字符串是否正确编码?(例如,通过将空格替换为“%20”)?感谢您的响应,我实际上在URL中没有任何空格。我刚刚打印了堆栈跟踪&它抛出了一个java.io.FileNotFoundException。这是否意味着URL无效?我认为您应该指出引发异常的行,可能还有堆栈跟踪。对于您的帮助,我发现问题是我必须使用正确的属性集