-1

我需要在 C# 中创建以下 PHP POST

$params = array(    
'method' => 'method1',   
'params' => array 
    (    
        'P1' => FOO,    
        'P2' => $Bar, 
        'P3' => $Foo,
    ) 
);

我无法弄清楚如何创建params数组。我尝试使用WebClient.UploadString()json 字符串无济于事。

如何在 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

4

2 回答 2

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&params[P1]=bar1&params[P2]=bar2&params[P3]=bar3";  
于 2013-06-25T11:11:47.177 回答
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);
}

如果这不能解决您的问题,请在上面链接中的答案中尝试更多解决方案。

于 2013-06-25T11:12:28.983 回答