尝试使用Java发布时出现HTTP 500错误

时间:2014-10-30 20:25:59

标签: java http

我尝试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();
}

1 个答案:

答案 0 :(得分:1)

不要对您的查询字符串进行urlencode。

更新

在POST消息中,请求的主体格式为:

name1=value1&name2=value2...

如果您对整个查询行进行编码,则'='和'&'将被转义,服务器将无法检索参数。

您的某些参数值可能需要进行编码;但你必须单独编码:

String params = "param1=" + URLEncoder.encode(value1, "UTF-8")
        + "&param2=" + URLEncoder.encode(value2, "UTF-8")
        ...