- - PR -
HTTP通信について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-07-21 19:09
Soketを用いてHTTPリクエストを送信し、
結果を表示させたく、下記プログラムを実行しました。 TextBox1.Textには 「POST http://localhost:8000//httptest/FormTest HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n ;」 とHTTPリクエスト文字列を入れ送信しています。 実行すると、プログラムが固まり応答がなくなってしまいます。 どうしてでしょうか・・・。 もし詳しい方いらっしゃいましたら助言お願いいたします。 リクエスト受信側:Java サーブレットコンテナ:TOMCAT4.1 以下、プログラム内容 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Private intPortNo As Integer = 8000 Private objNetStream As System.Net.Sockets.NetworkStream Private objTcpClient As System.Net.Sockets.TcpClient Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim bytReceiveBuffer(255) As Byte Dim bytSendBuffer As Byte() Dim intDataLength As Integer Dim strReceivedData As String objTcpClient = New System.Net.Sockets.TcpClient With objTcpClient Try objTcpClient.Connect("localhost", intPortNo) objNetStream = .GetStream With objNetStream bytSendBuffer = System.Text.Encoding.Default.GetBytes(TextBox1.Text) .Write(bytSendBuffer, 0, bytSendBuffer.Length) Do If .DataAvailable Then intDataLength = .Read(bytReceiveBuffer, 0, bytReceiveBuffer.Length) strReceivedData &= System.Text.Encoding.Default.GetString(bytReceiveBuffer).Substring(0, intDataLength) ElseIf Not strReceivedData Is Nothing Then TextBox2.Text = strReceivedData Exit Do End If Loop End With Catch Ex As Exception MsgBox(Ex.Message) End Try .Close() End With End Sub End Class |
|
投稿日時: 2006-07-21 20:49
VBはぜんぜん知らないのでてきとーに指摘します。
Faceさんがしたいことは「GET」ではなく「POST」リクエストで正しいですね?(確認) 「POST」の直後が間違っています。「/httptest/FormTest HTTP/1.1」かと思います。 POSTで送りたいデータが「;」であれば、「Content-Length: 1」というヘッダも必要かと思います。 |
|
投稿日時: 2006-07-22 05:43
これは、Socket を使って HTTP を実装するのが目的なんですか?
それとも HTML をダウンロードするのが目的なんですか? ダウンロードしたいだけだったら WebClient を使ったほうが簡単だと思いますが |
1