Visual C# 发出类似 python 的 Web 请求
Visual C# make web request like python's
我有一小段 python 代码,它使用 urllib2
发出网络请求,如下所示
import json
import urllib2
urlRequest = urllib2.Request('<link>')
urlRequest.add_header('Content-Type', 'application/json')
urlRequest.add_header('RegistrationToken', '<token>')
data = {
'content': '<c>',
'messagetype': 'RichText',
'contenttype': 'text',
'id': '<id>'
}
urllib2.urlopen(urlRequest, json.dumps(data))
当我尝试在 C# 中执行此操作时,我遇到了以下问题
- 如何发送
data
- 如何添加 headers?
谷歌搜索了一段时间后,我设法编写了这段代码:
var request = (HttpWebRequest)WebRequest.Create(url_input.Text);
request.ContentType = "application/json";
request.Headers["RegistrationToken"] = rtoken_input.Text;
request.GetResponse();
我设法处理了 headers 部分,但关于 data
的问题仍然存在。 json 编码的最佳方式是什么?
有人知道该怎么做吗?
如果您在将 POST 数据序列化为 JSON 有效载荷之后,则几乎没有选择。
1) System.Web.Helpers.Json.Encode MSDN Link
2) 使用 JSON.NET 库 Link
至于您尝试将 python 转换为 C#,您的方向是正确的。
参考this link
或者您可以使用 WebClient class MSDN Link
参考this link以及
伪代码
var client = new WebClient();
client.Headers.Add("Content-Type", "application/json");
client.Headers.Add("RegistrationToken", "<token>");
string response = client.UploadString("<link>", "<json string>");
我有一小段 python 代码,它使用 urllib2
发出网络请求,如下所示
import json
import urllib2
urlRequest = urllib2.Request('<link>')
urlRequest.add_header('Content-Type', 'application/json')
urlRequest.add_header('RegistrationToken', '<token>')
data = {
'content': '<c>',
'messagetype': 'RichText',
'contenttype': 'text',
'id': '<id>'
}
urllib2.urlopen(urlRequest, json.dumps(data))
当我尝试在 C# 中执行此操作时,我遇到了以下问题
- 如何发送
data
- 如何添加 headers?
谷歌搜索了一段时间后,我设法编写了这段代码:
var request = (HttpWebRequest)WebRequest.Create(url_input.Text);
request.ContentType = "application/json";
request.Headers["RegistrationToken"] = rtoken_input.Text;
request.GetResponse();
我设法处理了 headers 部分,但关于 data
的问题仍然存在。 json 编码的最佳方式是什么?
有人知道该怎么做吗?
如果您在将 POST 数据序列化为 JSON 有效载荷之后,则几乎没有选择。
1) System.Web.Helpers.Json.Encode MSDN Link
2) 使用 JSON.NET 库 Link
至于您尝试将 python 转换为 C#,您的方向是正确的。 参考this link
或者您可以使用 WebClient class MSDN Link 参考this link以及
伪代码
var client = new WebClient();
client.Headers.Add("Content-Type", "application/json");
client.Headers.Add("RegistrationToken", "<token>");
string response = client.UploadString("<link>", "<json string>");