C#使用REST API POST参数作为数组
本文关键字:数组 参数 POST 使用 REST API | 更新日期: 2023-09-27 18:19:52
我需要在C#中创建以下PHP POST
$params = array(
'method' => 'method1',
'params' => array
(
'P1' => FOO,
'P2' => $Bar,
'P3' => $Foo,
)
);
我不知道如何创建params
数组。我尝试过使用带有json字符串的WebClient.UploadString()
,但没有成功。
我如何在C#中构造上述内容?
我尝试
using (WebClient client = new WebClient())
{
return client.UploadString(EndPoint, "?method=payment");
}
上述方法有效,但需要进一步的参数。
using (WebClient client = new WebClient())
{
return client.UploadString(EndPoint, "?method=foo&P1=bar");
}
P1
未被识别。
我尝试过使用UploadValues()
,但无法将参数存储在NamedValueCollection
中
API是https://secure-test.be2bill.com/front/service/rest/process
如这里所述:http://www.codingvision.net/networking/c-sending-data-using-get-or-post/
它应该这样工作:
string urlAddress = "http://www.yoursite.tld/somepage.php?method=foo&P1=bar1&P2=bar2&P3=bar3";
using (WebClient client = new WebClient())
{
string response = client.DownloadString(urlAddress);
}
ob也许你想用post方法。。。查看链接
在的示例中
$php_get_vars = array(
'method' => 'foo',
'params' => array
(
'P1' => 'bar1',
'P2' => 'bar2',
'P3' => 'bar3',
)
);
应该是:
string urlAddress = "http://www.yoursite.tld/somepage.php?method=foo¶ms[P1]=bar1¶ms[P2]=bar2¶ms[P3]=bar3";
我认为您需要使用POST方法来发布数据。很多时候,错误是您没有设置正确的请求标头。
这里有一个应该有效的解决方案(Robin Van Persi在《如何使用C#中的WebClient将数据发布到特定URL》中首次发布):
string URI = "http://www.domain.com/restservice.php";
string params = "method=foo&P1=" + value1 + "&P2=" + value2 + "&P3=" + value3;
using (WebClient wc = new WebClient())
{
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
string HtmlResult = wc.UploadString(URI, params);
}
如果这不能解决你的问题,请在上面的链接中尝试更多的解决方案。