c# - VB.net 中的 IGDB V4 发布请求
问题描述
如果您访问:https ://reqbin.com/curl 并发布并发送此 curl 命令
curl 'https://api.igdb.com/v4/games/' \
-d 'fields name, url, cover;where id = 296;' \
-H 'Client-ID: removed' \
-H 'Authorization: Bearer removed' \
-H 'Accept: application/json'
有用。
所以我试图在 vb.net 中做到这一点
Dim request As HttpWebRequest
Dim response As HttpWebResponse = Nothing
Dim reader As StreamReader
ServicePointManager.Expect100Continue = True
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
Try
request = DirectCast(WebRequest.Create("https://api.igdb.com/v4/games/"), HttpWebRequest)
request.Headers.Add("Client-ID: removed")
request.Headers.Add("Authorization: Bearer removed")
request.Headers.Add("fields: name, url, where id = 296")
response = DirectCast(request.GetResponse(), HttpWebResponse)
reader = New StreamReader(response.GetResponseStream())
Dim rawresp As String
rawresp = reader.ReadToEnd()
rt.Text = (rawresp)
Catch ex As Exception
MsgBox(ex.Message)
End Try
在 IGDB api V3 中,使用此代码的 http 帖子没有问题。但在 V4 中,id 不起作用。
问题出在这一行
request.Headers.Add("fields: name, url, where id = 296")
我不知道如何将“where id = 296”放在帖子请求的标题中:(我为此苦苦挣扎了好几天。如果有人能提供帮助,我将不胜感激
解决方案
感谢@Michael Welch ..我的代码可以正常工作了..我会在这里发布这个..
Public Sub SendPostData(ByVal site As String, ByVal message As String)
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
Dim request As WebRequest
request = WebRequest.Create(site)
Dim response As WebResponse
Dim postData As String = "fields " + message
Dim data As Byte() = Encoding.UTF8.GetBytes(postData)
request.Method = "POST"
request.Headers.Add("Client-ID: removed")
request.Headers.Add("Authorization: Bearer removed")
request.ContentType = "text/plain"
request.ContentLength = data.Length
Dim stream As Stream = request.GetRequestStream()
stream.Write(data, 0, data.Length)
stream.Close()
response = request.GetResponse()
Dim sr As New StreamReader(response.GetResponseStream())
rt.Text = sr.ReadToEnd
End Sub
SendPostData("https://api.igdb.com/v4/games/", "name, url; where id = 296;")
推荐阅读
- reactjs - 如何使用 rollupjs 创建具有不同目录的 npm 包
- android - 如何在加载网站时检测另一个应用程序的音频是否在后台播放?(安卓、Windows 10)
- java - 为什么 Java Swing 程序不能显示德语字符,例如变音符号(ä、ö、...)?
- c# - 使用 .NET 核心中的 dapper 批量插入 PostgreSQL
- php - 加载自定义模板后的 Wordpress add_filter
- postgresql - 如何使用 python 通过 ssh 连接 aws postgres db
- python - 使用 for 循环为标签截屏
- java - @OneToMany 注释时休眠是否总是需要添加/清除方法?
- c# - 重绘时控制台闪烁
- javascript - React - 可以在应用程序中使用 localStorage 项目,而不是从 redux 获取此状态吗?