我有一个 HTTP 请求抛出了一个null
异常。
代码如下:
public String updateRounds() {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("https://technet.rapaport.com/HTTP/Prices/CSV2_Round.aspx");
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("Username", _user));
nameValuePairs.add(new BasicNameValuePair("Password", _password));
try {
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String response = "";
// Execute HTTP Post Request
try {
response = httpclient.execute(httppost, responseHandler); // it gets
// exception
// here
} catch (Exception e) {
e.getMessage(); // e is null
}
return response;
}
有人知道为什么会这样吗?
谢谢大家的帮助。我已经更改了
e.getMessage();
自
e.printStackTrace();
我看到例外是关于SSL证书的。所以我处理了它,现在它可以工作了。谢谢大家。
您在遵循时遇到问题。
String response = "";
// Execute HTTP Post Request
try {
response = httpclient.execute(httppost, responseHandler); //it gets exception here
什么是响应处理程序?
httpclient.execute
返回HttpResponse
,您正在尝试以response
(即字符串)返回它。
所以改变
String response
自
HttpResponse response
如果您确实要返回字符串,请添加以下代码。
bufferedReader = new BufferedReader(
new InputStreamReader(response.getEntity().getContent()));
StringBuffer stringBuffer = new StringBuffer("");
String line = "";
String LineSeparator = System.getProperty("line.separator");
while ((line = bufferedReader.readLine()) != null) {
stringBuffer.append(line + LineSeparator);
}
bufferedReader.close();
return stringBuffer.toString();