HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0912
めりーしたらば掲示板のスレッド内容の取得方法について2解決


めりー

リンク

2015/9/12(Sat) 04:38:40|NO.71606

はじめまして。
hspsockを使ったWebページの取得について質問です。
ネットワークを利用したプログラムに挑戦しようと思ったのですが行き詰まってしまいました。

したらば掲示板のスレッドのレスを取得したいのですが、エラーとしか返ってきません。
408 Request Time-outと返ってきてタイムアウトしてしまうようです。
httpでリクエストやhspsockの使い方が違うのでしょうか?

掲示板はテスト用に借りてきました。
http://jbbs.shitaraba.net/game/59306/

▼ソースコード
#include "hspsock.as"

SERVER = "jbbs.shitaraba.net"
PORT = 80

sockopen 0,SERVER,PORT //サーバーに接続
if stat != 0 : mes "接続に失敗しました"

Address = "/bbs/rawmode.cgi/game/59306/1441992143/1-"


// リクエストを送信
sockput "GET "+Address+" HTTP/1.1\nHost:"+SERVER+"\nConnection: close"+"\n"

sdim ResponseData, 2048 // 受信するための変数

repeat
wait 1
sockcheck 0
if stat == 1 : title "受信データ未到着"
if stat == 2 : title "通信エラー" : stop
if stat == 0 : title "受信データ到着" : goto *get_response
loop

*get_response
sockget ResponseData, 2048, 0
if stat != 0 : mes "受信失敗しました"

mesbox ResponseData, 640, 480 // 結果を表示

stop

◆ここまで

他の方のソースコードを参考に自分で書いてみました。
数日調べて回ったのですが理解にいたらず、どうか助言やヒントよろしくお願いいたします。



この記事に返信する


inovia

リンク

2015/9/12(Sat) 06:02:35|NO.71607


sockput "GET "+Address+" HTTP/1.1\nHost: "+SERVER+"\nConnection: close"+"\n\n"

最後の\nが足りないのが原因かと。
"Host:"の後に半角スペースもないけど、こっちはなくても大丈夫そう。



めりー

リンク

2015/9/12(Sat) 21:23:04|NO.71626

お早い回答ありがとうございます。
ご指摘どおりHTTPリクエストの仕方が間違っていました。
空行はメッセージヘッダーの終わりを伝える重要な役割があったのですね。

コードを書き直し、無事Webサーバからデータを取得できました。
おかげさまで問題の解決とHTTPリクエストについて理解が深まりました。
大変ありがとうございました。

◆参考にしたリンク
【ネットワークエンジニアとして】 http://www.infraexpert.com/
→【TCP/IP - HTTP】http://www.infraexpert.com/study/tcpip16.html



ONION software Copyright 1997-2021(c) All rights reserved.