In .NET

【.NET】PUTリクエスト方法

V

B.netで、

PUTを行う方法。

 

意外と書いてあるサイトが少なかったので、

備忘録として残します。

POSTの時とやり方は、同じです。

 

PUTの方法

こんな感じで、出来ます。

ステータスコードの取得などは、

webRequestでは取得できません。

その為、HttpWebRequestにキャストしてます。

※大分間違っていた為、修正!

 

'POST送信する値を設定
Dim postData As String = @送りたいデータ
'バイト型配列に変換
Dim postDataBytes As Byte() = _
    System.Text.Encoding.ASCII.GetBytes(postData)

'HttpWebRequestの作成
'CastしないとStatusCodeとかが取得できない。間違ってるかも
Dim req As System.Net.HttpWebRequest = _
    DirecrCastt(System.net.HttpWebRequest.Create("@PUTしたいURL"),System.Net.HttpWebRequest)
'メソッドにPUTを指定
req.Method = "PUT"
'ContentTypeを設定
req.ContentType = "application/x-www-form-urlencoded"
'POST送信するデータの長さを指定
req.ContentLength = postDataBytes.Length

'データをPUT送信するためのStreamを取得
Dim reqStream As System.IO.Stream = req.GetRequestStream()
'送信するデータを書き込む。
reqStream.Write(postDataBytes, 0, postDataBytes.Length)
reqStream.Close()

'サーバーからの応答を受信するためのWebResponseを取得
Dim res As System.Net.HttpWebResponse = DirectCast(req.GetResponse(),System.Net.HttpWebResponse)
'ステータスコード取得
res.StatusCode
'応答データを受信するためのStreamを取得。レスポンスの値を取得できる。
Dim resStream As System.IO.Stream = res.GetResponseStream()
'受信して表示
Dim sr As New System.IO.StreamReader(resStream)
Console.WriteLine(sr.ReadToEnd())

'閉じる
sr.Close()

エラー処理

こんな感じだったと思います。

catch ex As WebException

'サーバーからの応答を受信するためのWebResponseを取得
Dim errorRes As System.Net.HttpWebResponse = DirectCast(ex.GetResponse,System.Net.HttpWebRespone)
'中身の表示は、上のStreamを使ったのと同じ要領です!

, ,