3

我有一个引发null异常的 HTTP 请求。

这是代码:

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;
}

任何人都知道为什么会这样吗?

4

2 回答 2

4

感谢大家尝试提供帮助。我改变了

e.getMessage();

e.printStackTrace();

我看到例外是关于 ssl 证书。所以我处理了它,现在它可以工作了。谢谢你们。

于 2012-06-13T10:10:41.990 回答
2

您在跟随时遇到问题。

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();
于 2012-06-12T13:29:22.993 回答