Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用此api url发布数据_C#_Asp.net_Xml_Api - Fatal编程技术网

C# 如何使用此api url发布数据

C# 如何使用此api url发布数据,c#,asp.net,xml,api,C#,Asp.net,Xml,Api,我需要应用程序中的帮助,因此我想在下面的api url上发布一些数据: 提供早餐蜜月者和STRBOKINGCODE=zx和STRPSBOOKINGREF=mine和STRPROMOTION代码=hellogirl@id=22 有人能帮我用什么C代码吗 当我打开浏览器时,上面的APIRL会将数据插入数据库,并向我重新运行ID,因此在我的c#中开发的应用程序中,我如何发布数据或简单地执行数据?” 如果可以的话,我可以使用上面的代码吗?因为需要发布的所有数据都包含在url中。您可以使用HttpClie

我需要应用程序中的帮助,因此我想在下面的api url上发布一些数据: 提供早餐蜜月者和STRBOKINGCODE=zx和STRPSBOOKINGREF=mine和STRPROMOTION代码=hellogirl@id=22

有人能帮我用什么C代码吗

当我打开浏览器时,上面的APIRL会将数据插入数据库,并向我重新运行ID,因此在我的c#中开发的应用程序中,我如何发布数据或简单地执行数据?”


如果可以的话,我可以使用上面的代码吗?因为需要发布的所有数据都包含在url中。

您可以使用HttpClient

这在以下位置可用:.NET Framework 4.5+、.NET Standard 1.1+、.NET Core 1.0+

在C语言中,您可以通过

包括

使用System.Net.Http

建议在应用程序的生命周期内创建一个HttpClient实例并共享它。如下所示:

私有静态只读HttpClient客户端=新HttpClient()

最后,您可以通过HttpClient的PostAsync方法发送POST请求:

var values=新字典{“参数1”, “value1”}、{“parameter2”、“value2”}

var内容=新的FormUrlEncodedContent(值)

var响应=等待 客户端。PostAsync(“,内容)

var responseString=await response.Content.ReadAsStringAsync()

作为响应,您将得到一个字符串,例如,如果api返回字符串或json

这是向Api发送POST请求的多种方法之一。 您还可以使用:


网络客户端

感谢我成功实现了我想要做的。以下是最终代码:

var request = (HttpWebRequest)WebRequest.Create("http://myapiurl.com/myapi/csos.asp");
var postData = "username=fdgfdg";
postData += "&password=dfgdg";
postData += "&intResortID=353453";
postData += "&strpartysurname=test";
postData += "&strpartyfirstname=test";
postData += "&strpartyprefix=M";
postData += "&intqtyadults=1";
postData += "&intqtytotal=1";
postData += "&dtmLine1=20-Mar-2019";
postData += "&strRoomType1=sea";
postData += "&intRooms1=1";
postData += "&intnights1=1";
postData += "&strFlightNo=w";
postData += "&strNotes=FlighDJ76";
postData += "&strBookingCode=zx";
postData += "&strPosBookingRef=mine";
postData += "&strPromotionCode=hellogirl";
postData += "&BookID=hgjghjg";

var data = Encoding.ASCII.GetBytes(postData);


request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;

var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

using (var stream2 = request.GetRequestStream())
{
    stream2.Write(data, 0, data.Length);
}

var responser = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(responser.GetResponseStream()).ReadToEnd();
this.WriteToFile("Some data has been posted  " +responseString);

我使用的是Visual Studio 2008,因此无法使用Httpclient。但是上面的代码运行良好,它帮助我实现了我想要的功能

当您尝试使用它时发生了什么?它不起作用吗?为什么?一些例外?为什么用户名和密码在查询字符串中?为什么不使用https?如果您使用的是表单,为什么要使用t整个查询字符串而不是主体?@Greg api是使用VB开发的,因此我们连接到该api,以便在数据库中插入数据,一旦它这样做,它会通知系统触发电子邮件,因此如果在浏览器上运行整个url,它会执行这些操作。我理解其目的,并不认为这是传输敏感信息的正确方法不过是队形。
var request = (HttpWebRequest)WebRequest.Create("http://myapiurl.com/myapi/csos.asp");
var postData = "username=fdgfdg";
postData += "&password=dfgdg";
postData += "&intResortID=353453";
postData += "&strpartysurname=test";
postData += "&strpartyfirstname=test";
postData += "&strpartyprefix=M";
postData += "&intqtyadults=1";
postData += "&intqtytotal=1";
postData += "&dtmLine1=20-Mar-2019";
postData += "&strRoomType1=sea";
postData += "&intRooms1=1";
postData += "&intnights1=1";
postData += "&strFlightNo=w";
postData += "&strNotes=FlighDJ76";
postData += "&strBookingCode=zx";
postData += "&strPosBookingRef=mine";
postData += "&strPromotionCode=hellogirl";
postData += "&BookID=hgjghjg";

var data = Encoding.ASCII.GetBytes(postData);


request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;

var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

using (var stream2 = request.GetRequestStream())
{
    stream2.Write(data, 0, data.Length);
}

var responser = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(responser.GetResponseStream()).ReadToEnd();
this.WriteToFile("Some data has been posted  " +responseString);