首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用HTTP POST从C#调用can服务

如何使用HTTP POST从C#调用can服务
EN

Stack Overflow用户
提问于 2010-10-10 20:55:35
回答 5查看 108.7K关注 0票数 20

我想写一个c#类,它将创建到运行到www.temp.com的get服务的连接,向DoSomething方法发送2个字符串参数,并获得字符串结果。我不想使用wsdl。因为我知道the服务的参数,所以我只想进行一个简单的调用。

我猜在.Net 2中应该有一种简单的方法来做到这一点,但我找不到任何示例……

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-10-10 21:08:25

如果这个"webservice“是一个简单的HTTP GET,那么您可以使用WebRequest

代码语言:javascript
复制
WebRequest request = WebRequest.Create("http://www.temp.com/?param1=x&param2=y");
request.Method="GET";
WebResponse response = request.GetResponse();

在那里,您可以查看输出的response.GetResponseStream。你也可以用同样的方式点击一个邮寄服务。

但是,如果这是一个SOAP not服务,就没有那么简单了。根据webservice的安全性和选项,有时您可以将已形成的请求用作模板-替换参数值并发送它(使用webrequest),然后手动解析SOAP响应……但是,在这种情况下,您会看到许多额外的工作,还不如使用wsdl.exe来生成代理。

票数 26
EN

Stack Overflow用户

发布于 2010-10-11 02:07:12

我将探索在您的web服务中使用ASP.NET MVC。您可以通过标准表单参数提供参数,并以JSON形式返回结果。

代码语言:javascript
复制
[HttpPost]
public ActionResult MyPostAction( string foo, string bar )
{
     ...
     return Json( new { Value = "baz" } );
}

在您的客户端中,使用HttpWebRequest

代码语言:javascript
复制
var request = WebRequest.Create( "/controller/mypostaction" );
request.Method = "POST";
var data = string.Format( "foo={0}&bar={1}", foo, bar );
using (var writer = new StreamWriter( request.GetRequestStream() ))
{
    writer.WriteLine( data );
}
var response = request.GetResponse();
var serializer = new DataContractJsonSerializer(typeof(PostActionResult));
var result = serializer.ReadObject( response.GetResponseStream() )
                 as PostActionResult;

你有的地方

代码语言:javascript
复制
public class PostActionResult
{
     public string Value { get; set; }
}
票数 11
EN

Stack Overflow用户

发布于 2015-07-05 18:16:13

调用POST方法的另一种方式是在WebAPI中调用POST方法。

代码语言:javascript
复制
            WebClient wc = new WebClient();

            string result;
            wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
            result = wc.UploadString("http://localhost:23369/MyController/PostMethodName/Param 1/Param 2","");

            Response.Write(result);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3900371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档