0

そのため、Apache Http Client を使用して Http POST リクエストで送信したいオブジェクトがArrayListあります。String

私が今行っているのは、List オブジェクトを新しいStringeach に連結し、その後にSystem.getProperty("line.separator")改行を追加することです。しかし、サーバーから悪い応答が返され、URL の形式が正しくないことがわかりました。よろしくお願いします。

ArrayList<String> episodeList
String episodesAsString = "";

    for(String s : episodeList)     
            episodesAsString = episodesAsString.concat(s + NL);

        URI uri = new URI(
                "https", 
                "my.domain.com", 
                "/path/add?this=123456&application=myApp&event=myEvent&description=" + episodesAsString,
                null);


    HttpClient client = new DefaultHttpClient();
    HttpPost request = new HttpPost(uri);
    HttpResponse response = client.execute(request);
4

3 に答える 3

0

NL改行文字を意味しているようです。すべての文字列を連結して\nNL の代わりに使用した後、代わりにURLEncoderを使用して文字列をエンコードします。また、デバッグで URL が正しく渡されていないかどうかも確認してください。

于 2013-01-11T13:39:09.907 に答える
0

URIが問題だと思います。それを使用して適切な URL を作成できると思いますが、ホスト名の前に「//」がありません。あなたの例では、リクエストは次のようになると思います:

https:my.domain.com/path/addthis=123456&application=myApp&event=myEvent&description=XXX

これは、URI クラスの JavaDoc を読むのに費やした 5 分間に基づいています。おそらく、プロキシまたはスニファーを配置して、ヘッダーのペイロードがどのように見えるかを確認することで、これをテストできます。

于 2013-01-11T14:00:07.467 に答える
0

あなたの場合、POSTデータを送信していません。問題は、不適切な URL にある可能性があります。

これを試して:

String strUrl = "http://localhost:7001/RESTFUL_Tutorial/rest/hello/test1/test naveen kumar/test pwd";

URL url = new URL(strUrl);
// for getting URI
URI urlinfo = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
// for getting URL
url = urlinfo.toURL();

URLEncoderをより適切に使用するには

あなたのURLを配置してください.. :)

于 2013-01-11T13:35:15.440 に答える