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 に答える