質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

1回答

5510閲覧

JAVA HTTP post送信でヘッダー、ボディを記載しAPI送信するには

Ta-Jn

総合スコア11

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

1グッド

1クリップ

投稿2020/09/16 01:06

目的として、JAVAでAPIトークンを取得したいです。
そのためにはPOSTで送る項目があり、

ヘッダーには「Authorization」、「Content-Type」
ボディには「type」、「scope」

を設定し送りたいと思っております。
ヘッダー部分の送信方法はわかったのですがボディ部分がわからず詰まっております。

下記に試している部分を貼っていますが正直動きを確認できていないので
あってるかすら、、、という感じです。
ステータスコードレスポンスメッセージも見れる方法をご教授していただければと思います。
お手数をおかけしますが、宜しくお願いいたします。

public static void main(String args[])throws IOException { String message = "httpテスト"; URL url = new URL("http://~~~"); HttpURLConnection http = (HttpURLConnection)url.openConnection(); http.setRequestMethod("POST"); http.setDoOutput(true); http.setRequestProperty("Authorization", "~~~"); http.setRequestProperty("Content-Type", "~~~"; http.connect();
A-pZ👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

こういうことでしょうか?(クラス等は適時補ってください)

http.connectの後に

Java

1String body = "type=XXXX&scope=YYYY"; 2BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(http.getOutputStream(), StandardCharsets.UTF_8)); 3writer.write(body); 4writer.close(); 5

そして、レスポンスコード

Java

1int responseCode = http.getResponseCode(); 2if (responseCode == HttpURLConnection.HTTP_OK) { 3 //... 4} 5

投稿2020/09/16 01:25

kay-ws

総合スコア105

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ta-Jn

2020/09/16 03:15

ありがとうございます。 http.connectの後にと書いてあるのですが、私の把握としてconnectを起点にHTTP送信を実行する と認識していましたが違いますでしょうか? connect後に置きますとボディも一緒に送信できないのかな?と思っております。
kay-ws

2020/09/16 06:38

GETメソッドだと、おっしゃる通り、送信実行という感じですね。 (送るボディがないので。) POSTメソッドの場合はつないだ後に、出力ストリームに書き出すことで ボディ部分を送れると認識ください。
Ta-Jn

2020/09/17 01:26

そうなのですね! ありがとうございます。いまいちど参考に組んでみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問