0

httpClient を作成していますが、httpPost メソッドを送信するときに、httpRequest にボディを添付するにはどうすればよいですか??

 public String httpPost(String URL, String BODY) {

    DefaultHttpClient httpclient = new DefaultHttpClient();
    HttpPost httpPost = new HttpPost(URL);



    try {

        response = httpclient.execute(httpPost); // get response from executing client

        StatusLine statusLine = response.getStatusLine();
        int statusCode = statusLine.getStatusCode();
        if (statusCode == HttpStatus.SC_OK) {
            body.append(statusLine + "\n");
            HttpEntity e = response.getEntity();
            String entity = EntityUtils.toString(e);
            body.append(entity);

        } else {
            body.append(statusLine + "\n");
            // System.out.println(statusLine);
        }
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        httpPost.releaseConnection();
    }
    return body.toString();
}

たとえば、文字列は
" < html > < header > Header < /header> < body> I am body < /body> "
です。その文字列を要求メッセージのどこに添付すればよいですか?
ありがとうございました :)

4

2 に答える 2

0

あなたhttpPost.setEntity(" < html > < header > Header < /header> < body> I am body < /body> ")のtry-catchの前に試しましたか?

「エンティティ」が何を指しているのかは完全にはわかりませんが、ここのドキュメントを見て思いつくのはそれが最善です

于 2012-11-27T01:36:53.300 に答える
0

を作成StringEntityしてHttpPostオブジェクトに設定し、正しい を設定できContent-Typeます。

StringEntity entity = new StringEntity("data=" + java.net.URLEncoder.encode(body, "utf-8"));
entity.setContentType("application/x-www-form-urlencoded");
httpPost.setEntity(entity);

そして、通常どおり POST リクエストを送信します。

于 2012-11-27T01:39:05.743 に答える