2014-10-30 53 views
0

我正在尝试POST到服务器,并在获取响应时收到HTTP 500错误。我已经检查过,以确保我的参数格式正确。如果有人能告诉我为什么我的代码无法正常工作,我将不胜感激!HTTP 500尝试使用Java发布时出错

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

请勿对您的查询字符串进行urlencode编码。

UPDATE

在POST消息,该请求的主体的形式为:

name1=value1&name2=value2... 

如果编码整个查询行, '=' S和'&的意志被转义,服务器将无法检索参数。

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

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