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