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

C#使用REST API POST参数作为数组

如这里所述: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";  

我认为您需要使用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);
}

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