1

Commons HttpClient を使用して、パラメーターとしていくつかの文字列コンテンツとともに投稿要求を送信しています。以下は私のコードです:

    // obtain the default httpclient
    client = new DefaultHttpClient();

    // obtain a http post request object
    postRequest = new HttpPost(stanbolInstance);
    postRequest.setHeader("Accept", "application/json");

    // create an http param containing summary of article
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
    nameValuePairs.add(new BasicNameValuePair("data", content));

    try {
        // add the param to postRequest
        postRequest.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    try {
        // obtain the response
        response = client.execute(postRequest);
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

ここで、stanbolInstance は:http://dev.iks-project.eu:8081/enhancer 動作しません。以下は例外です。

Problem accessing /enhancer. Reason:
<pre>    The parsed byte array MUST NOT be NULL!</pre></p><h3>Caused by:</h3><pre>java.lang.IllegalArgumentException: The parsed byte array MUST NOT be NULL!

以下は、機能する cURL の同等物です。

curl -X POST -H "Accept: text/turtle" -H "Content-type: text/plain" --data "The Stanbol enhancer can detect famous cities such as Paris and people such as Bob Marley." http://dev.iks-project.eu:8081/enhancer

ヘルプ!

4

1 に答える 1

2

内容の入れ方を間違っていると思います。

交換:

 List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
    nameValuePairs.add(new BasicNameValuePair("data", content));

    try {
        // add the param to postRequest
        postRequest.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

postRequest.setEntity(new StringEntity(content));
于 2013-07-11T18:46:09.300 に答える