HttpRequest в Андроид не удается, и исключением является нулем
У меня есть 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;
}
Кто-нибудь имеет представление о том, почему это происходит?
2 ответа:
Спасибо всем за то, что пытались помочь. Я изменил
e.getMessage();
К
e.printStackTrace();
И я увидел, что исключение было связано с сертификатом ssl. Так что я справился с этим, и теперь это работает. Спасибо всем.
У вас есть проблема в следующем.
String response = ""; // Execute HTTP Post Request try { response = httpclient.execute(httppost, responseHandler); //it gets exception here
Что такое responseHandler?
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();