0

私は絶対にこれの上に私の髪を引き裂いています。

JavaでHTTPPOSTリクエストを作成しようとしていますが、代わりにGETとして送信し続けます。POSTリクエストを送信するためにいくつかの異なる方法に従いましたが、それらはすべてGETとして送信することになります。

これは私が現在持っているものです:

        URL url = new URL("https://api.soundcloud.com/oauth2/token");
        URLConnection conn = url.openConnection();
        conn.setDoOutput(true);

        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write(data);
        wr.close();

        // Get the response
            BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = rd.readLine()) != null) {
                resp += line;
            }
            rd.close();

私はStackOverflowのある投稿で、conn.setDoOuput(true)が接続を自動的にPOSTにすることになっていることを読みました。ただし、コードをデバッグすると、保護されたメンバーのconn.methodはGETのままになります。

また、url.openConnection()をHttpURLConnectionとしてキャストし、.setRequestMethod( "POST")を呼び出しましたが、conn.methodを変更することはまったくありませんでした。

ボーナスとして、私はsoundcloud認証をしようとしています、そして基本的に私がそれをすることを考えたすべての方法は完全な失敗でした...多分誰かがこれのためのより良い解決策を持っていますか?

4

1 に答える 1

1

SoundCloudのJavaSDKを使用してみましたか?

https://github.com/soundcloud/java-api-wrapper

これにより、HTTP/OAuth2のほとんどがコードから削除されます。

ただし、自分が何をしているのかをより細かく制御したい場合でも、通常は、Apacheのような適切なHTTPクライアントライブラリを使用することをお勧めします。チェックアウト: http: //hc.apache.org/httpcomponents-client-ga/index.html

于 2012-03-02T11:03:19.803 に答える