我尝试POST到服务器并在收到响应时收到HTTP 500错误。我已经检查过以确保我的参数格式正确。如果有人能告诉我为什么我的代码不起作用我会非常感激!
String params = URLEncoder.encode(query, "UTF-8");
postConnection.setDoOutput(true);
postConnection.setRequestProperty("Accept-Charset", "UTF-8");
OutputStream output = postConnection.getOutputStream();
output.write(params.getBytes("UTF-8"));
output.flush();
output.close();
InputStream postResponse = postConnection.getInputStream(); //error happens here
int inputByte = postResponse.read();
while (inputByte != -1){
postResponseRawJSON += (char)inputByte;
inputByte = postResponse.read();
}
答案 0 :(得分:1)
不要对您的查询字符串进行urlencode。
更新
在POST消息中,请求的主体格式为:
name1=value1&name2=value2...
如果您对整个查询行进行编码,则'='和'&'将被转义,服务器将无法检索参数。
您的某些参数值可能需要进行编码;但你必须单独编码:
String params = "param1=" + URLEncoder.encode(value1, "UTF-8")
+ "¶m2=" + URLEncoder.encode(value2, "UTF-8")
...