我想写一个c#类,它将创建到运行到www.temp.com的get服务的连接,向DoSomething方法发送2个字符串参数,并获得字符串结果。我不想使用wsdl。因为我知道the服务的参数,所以我只想进行一个简单的调用。
我猜在.Net 2中应该有一种简单的方法来做到这一点,但我找不到任何示例……
发布于 2010-10-10 21:08:25
如果这个"webservice“是一个简单的HTTP GET,那么您可以使用WebRequest
WebRequest request = WebRequest.Create("http://www.temp.com/?param1=x¶m2=y");
request.Method="GET";
WebResponse response = request.GetResponse();
在那里,您可以查看输出的response.GetResponseStream。你也可以用同样的方式点击一个邮寄服务。
但是,如果这是一个SOAP not服务,就没有那么简单了。根据webservice的安全性和选项,有时您可以将已形成的请求用作模板-替换参数值并发送它(使用webrequest),然后手动解析SOAP响应……但是,在这种情况下,您会看到许多额外的工作,还不如使用wsdl.exe
来生成代理。
发布于 2010-10-11 02:07:12
我将探索在您的web服务中使用ASP.NET MVC。您可以通过标准表单参数提供参数,并以JSON形式返回结果。
[HttpPost]
public ActionResult MyPostAction( string foo, string bar )
{
...
return Json( new { Value = "baz" } );
}
在您的客户端中,使用HttpWebRequest
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;
你有的地方
public class PostActionResult
{
public string Value { get; set; }
}
发布于 2015-07-05 18:16:13
调用POST方法的另一种方式是在WebAPI中调用POST方法。
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);
https://stackoverflow.com/questions/3900371
复制相似问题