5

Google HTTPクライアントでPOST、PUT、およびDELETEを実行する方法:

@Test
public void testGetDBs() throws IOException {
    GooUrl url = new GooUrl(GOO_URL);
    List<String> path = new LinkedList<String>();
    path.add("users");
    path.add("id1");
    url.setPathParts(path);
    url.fields = "";
    HttpRequest request;
    try {
        request = requestFactory.buildGetRequest(url);
        request.setMethod(HttpMethod.POST);
        String result = request.execute().parseAsString();
        System.out.println("Result = " + result);
    } catch (Exception e) {
        e.printStackTrace();
    }
} 

JSON文字列をPOSTする必要があるとしましょう。その方法は?また、コンテンツの長さとタイプを設定します。

4

1 に答える 1

7

実行する前に、適切なタイプのリクエストを作成し、その内容を設定する必要があります。

サンプルコードでは、GETリクエストを作成してから、メソッドをPOSTとして設定していることに注意してください。これは、混乱を招きます。HttpRequestFactoryコードを見ると、HTTPメソッドごとにビルドメソッドがあります。試す:

final request = requestFactory.buildPostRequest(url);
final byte [] contentBytes = ...//get some bytes!!
final HttpContent content = new ByteArrayContent("application/json", contentBytes ); 
request.setContent( content );
final String result = request.execute().parseAsString();

選択できるHttpContentにはいくつかの異なるタイプがあるようです(ByteArrayContentは上に示されています)。もちろん、ニーズに合わない場合は、HttpContentインターフェイスを自分で実装することもできます。

于 2012-12-04T18:40:51.243 に答える