HTTP要求でのステータスコードの取得

投稿者: 投稿日:2018/10/28(Sun) 14:29:33 No.2265

 こんにちは、お世話になります。

 HTTP要求の手順を利用しているんですが、ステータスコードを取得することはできますでしょうか。
 プロデルの仕様なのか、サーバー側の問題なのかわからないんですが、現状だとヘッダを取得してもステータスコードが入っていないようなので、少し困っています。
 一応下記にソースを張り付けておきます。

--------------------
HTTP取得というHTTP要求を作る
HTTP取得のメソッドは、「GET」
HTTP取得にて「https://riku22.net/abc.php」をHTTPで要求して応答内容とする
ヘッダは、応答内容のヘッダ
ヘッダを表示
--------------------

 以上、よろしくお願いいたします。

Re: HTTP要求でのステータスコードの取得

投稿者:通りすがり 投稿日:2018/10/28(Sun) 18:09:50 No.2266

ヘッダが辞書型になっているので、入りようがないと思われます。
HTTP応答をマニュアルで見るかぎり、以下の組み合わせではないでしょうか。
・HTTPプロトコルバージョン
・ステータスコード
・ステータス記述

ステータス行は、たしかにHTTPヘッダの一部ではあるのですが、他のヘッダのような
項目名と値のセットではないので、異なる手段(場所)に格納されるIFが多いです。実際、辞書型であるヘッダに、含まれるとしたら、どう入るべきなのかは、決めようがないと思われます(どう入ることを期待していたのかを聞いてみたいです)
ヘッダや受信した内容の全体を未解析の生のまま取得するIFを持つ場合には、取得できる場合もありますが、プロデルには無いようです。
(いざという時のために、生のヘッダと、ヘッダ+ボディ全体を未解析のままでの取得する手段があるとよいのですが。同一ヘッダが複数含まれてるようなケースで辞書化の処理に問題があったとき、未解析のデータが取得できれば自分で解析可能 等。)

Re^2: HTTP要求でのステータスコードの取得

投稿者: 投稿日:2018/11/02(Fri) 19:50:30 No.2270

 こんにちは、お世話になります。

> ヘッダが辞書型になっているので、入りようがないと思われます。

 確かにそうですよね。

> HTTP応答をマニュアルで見るかぎり、以下の組み合わせではないでしょうか。
> ・HTTPプロトコルバージョン
> ・ステータスコード
> ・ステータス記述

 確かに「HTTP応答」手順では、一応設定項目があるようですが、「HTTP要求」にはないようです。
 それから、HTTP応答の手順の使い方は、いまいちよくわからないんですよね…。

> ヘッダや受信した内容の全体を未解析の生のまま取得するIFを持つ場合には、取得できる場合もありますが、プロデルには無いようです。
> (いざという時のために、生のヘッダと、ヘッダ+ボディ全体を未解析のままでの取得する手段があるとよいのですが。同一ヘッダが複数含まれてるようなケースで辞書化の処理に問題があったとき、未解析のデータが取得できれば自分で解析可能 等。)

 確かに、生のデータを取得できるようになると、すごく助かります。

 というわけで、よろしければ今後のバージョンで検討いただけないでしょうか。

 以上、よろしくお願いいたします。

Re^3: HTTP要求でのステータスコードの取得

投稿者:通りすがり 投稿日:2018/11/03(Sat) 15:31:25 No.2273

種類の関係は以下のようになっているようです(推測です)
どうも、付属についてくるHELPの説明と合わない感じなんですが。

HTTP
・HTTPにリクエストする本体。
・ダウンロードする、取得する、要求する等を実際に行う。
・付属のHELPで抜けていると思われる手順(種類名を付記)
 【自分】で【アドレス:文字列】を【パラメータ:HTTP要求】にて要求する:HTTP応答

HTTP要求
・HTTPでリクエストする際の送信する情報をまとめた種類。
・HTTPで要求する際に、この種類のインスタンスをパラメータとして渡す。
・この種類の持つ手順は、この種類の内容を設定するための物がメイン。

HTTP応答
・HTTPでリクエストした際の受信した結果をまとめた種類。
・HTTPで要求すると、文字列ではなくHTTP応答のインスタンスが返ってくる。
・この種類の持つ手順は、この種類から情報を取り出すための物がメイン。
・基本的に、ユーザ(プログラマ)が自身で作成することはない。

なので、HTTPステータスは、HTTP応答にしかないものと思います。

1文にまとめると、
HTTPに、HTTP要求を渡すと、HTTP応答が返ってくる
となるかと思います。結果的に、明示的にHTTP応答という種類の名前を使っていなくても、すでに利用している ということになります(HTTPの中で作成されて、返される)

▲ページの先頭へ

- WebForum -