我需要在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
答案 0 :(得分:2)
像这里解释的那样: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";
答案 1 :(得分:0)
我假设您需要使用POST方法发布数据。很多时候,错误是您没有设置正确的请求标头。
这是一个应该有效的解决方案(首先由Robin Van Persi在How to post data to specific URL using WebClient in C#发布):
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);
}
如果这不能解决您的问题,请在上面链接的答案中尝试更多解决方案。