C# 如何创建到另一个服务器(URI)的Http请求并同步调用它
我有一个ASP.net MVC3应用程序。在我的一个控制器中,有一个向应用程序的某些用户发送SMS的操作。现在根据我们的SMS提供商,他将需要一个http请求到他的服务器(比如说)。有许多请求参数将附加到此URI。然后,需要使用请求参数将请求发送到上述URI,sms服务器将返回状态代码(响应),指示sms发送是否失败或成功。我不确定我们是如何在ASP.net(或者C#如果这看起来合乎逻辑的话)中创建这样的请求的。如果有人能给我指出正确的方向,我将不胜感激。请使用。这比WebRequest(及其衍生产品)更易于使用。在内部,它也使用WebRequest。您需要该类。该文件有一个样本:C# 如何创建到另一个服务器(URI)的Http请求并同步调用它,c#,asp.net-mvc,asp.net-mvc-3,C#,Asp.net Mvc,Asp.net Mvc 3,我有一个ASP.net MVC3应用程序。在我的一个控制器中,有一个向应用程序的某些用户发送SMS的操作。现在根据我们的SMS提供商,他将需要一个http请求到他的服务器(比如说)。有许多请求参数将附加到此URI。然后,需要使用请求参数将请求发送到上述URI,sms服务器将返回状态代码(响应),指示sms发送是否失败或成功。我不确定我们是如何在ASP.net(或者C#如果这看起来合乎逻辑的话)中创建这样的请求的。如果有人能给我指出正确的方向,我将不胜感激。请使用。这比WebRequest(及其衍
// Create a new 'Uri' object with the specified string.
Uri myUri =new Uri("http://www.contoso.com");
// Create a new request to the above mentioned URL.
WebRequest myWebRequest= WebRequest.Create(myUri);
// Assign the response object of 'WebRequest' to a 'WebResponse' variable.
WebResponse myWebResponse= myWebRequest.GetResponse();
请检查
WebResponse
对象的StatusCode
属性,查看SMS提供商返回的状态。您也可以使用。我知道问题的标题专门询问同步呼叫,但您可能真的想查看异步控制器以获得第三方网络外请求
WebRequest(或HttpWebRequest)似乎非常适合我的场景。但是,我想知道为什么它没有像WebClient()那样的用于构造查询字符串的名称/值参数。我是否需要在没有名称/值对帮助的情况下手动构建查询字符串?是的,您需要-答案是因为
WebRequest
通常是比WebClient
更低级别的实现,因此,虽然您有更多的控制权,但为您完成的工作却更少。但是,由于您对状态代码而不是实际响应感兴趣,因此选择WebRequest
是有意义的。