投稿の経緯
VB.Net→API(GET)のサンプルはネット上にたくさんあるのに、
VB.Net→API(PUT)のサンプルはなかなか見つからない!
やっと見つけてもC#のサンプルで、そのままだとうまく動かなかったり・・・
APIを叩くのは初めてで苦労したので、最終的に動いたものを投稿します。
VB.Net→iruca-API(PUT)
呼び出し側
Call メンバー情報を更新する("11111","離席")'11111は在席状態を更新したい人のMEMBER-ID
メンバー情報を更新する
Public Sub メンバー情報を更新する(メンバーID As String, 在席状態 As String)
'ルームコード設定
Dim ルームコード As String = "aa1111a1-1111-11aa-1a1a-a1111a111a11" 'irucaのROOM-CODEを入力
'定義
Dim ターゲットURL As String = "https://iruca.co/api/rooms/" & ルームコード & _
"/members/" & メンバーID
Dim PUTする文字列 As String = "{""status"":""" & 在席状態 & """}"
'「"」で囲われた中の範囲は、2個重ねることで「"」を無理矢理使用OK
Dim bytes As Byte() = Encoding.UTF8.GetBytes(PUTする文字列)
Dim request As HttpWebRequest = CType(WebRequest.Create(ターゲットURL), HttpWebRequest)
'通信の種類を設定
request.Method = "PUT"
request.ContentType = "application/json" 'irucaのapiとのやりとりはjson
request.Accept = "application/json"
'書き込み
Dim stream As Stream = request.GetRequestStream
stream.Write(bytes, 0, bytes.Length)
stream.Close()
'応答
Dim response As HttpWebResponse = CType(request.GetResponse, HttpWebResponse)
'ここで書込みが完了
Dim reader As StreamReader = New StreamReader(response.GetResponseStream)
response.Close()
reader.Close()
End Sub
PUTが通る条件をFiddler(フリーソフト)で試行錯誤
文字コードやBodyの文字列の条件をFiddlerで確認
条件を入れてからExcuteボタンを押して、結果のところに赤が出なければOK!
サーバに送る前にエンコードが必要なの?といった疑念を解消できてスッキリできます。
メンバー情報更新API
HTTPメソッド | パラメータ | https://iruca.co/api/rooms/ROOM-CODE/members/MEMBER-ID |
---|---|---|
PUT | name | 名前(省略可能。省略時は更新されません) |
status | ステータス(必須。在席、離席など) | |
message | ひとこと(省略可能。省略時は更新されません) |