2013-07-16 42 views
1

我想知道是否有人使用一个类来调用WebService,这个WS在组织引用后收到一个整数并响应成一个json文件,如何在不使用WebReference的情况下调用WebService?

其实我的问题是调用webservice而不使用一个Web引用,并读取JSON文件,并将其解析成一个字典,

我感谢你的帮助

最好的问候,我让你我的代码

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml; 
using System.Net; 
using Dimex.ChangeSAP.Core.Utilities; 

namespace Dimex.ChangeSAP.Core.Utilities 
{ 
    class ConsumirWebService 
    { 
     public void ConsumirWS() 
     { 

      Dimex.ChangeSAP.Core.Entities.Seguridad.Usuario users = new Dimex.ChangeSAP.Core.Entities.Seguridad.Usuario(); 
      int idUsuaro = users.IdUsuario; 

      try 
      { 

       System.Net.WebRequest req = System.Net.WebRequest.Create("http://192.168.8.97/PassportPruebas/api/partners?enterprise_system_id=1&organizational_reference=" + idUsuaro); 
       //req.Proxy = new System.Net.WebProxy(ProxyString, true); 
       //Add these, as we're doing a POST 
       req.ContentType = "application/x-www-form-urlencoded"; 
       req.Method = "POST"; 
       //We need to count how many bytes we're sending. 
       //Post'ed Faked Forms should be name=value& 
       string postData = "OPERATION_NAME=ADD_REQUEST&TECHNICIAN_KEY=90BA&INPUT_DATA=" + sendXML; 
       byte[] bytes = System.Text.Encoding.ASCII.GetBytes(postData); 
       req.ContentLength = bytes.Length; 
       System.IO.Stream os = req.GetRequestStream(); 
       os.Write(bytes, 0, bytes.Length); //Push it out there 
       os.Close(); 
       System.Net.WebResponse resp = req.GetResponse(); 
       if (resp == null) 
       { 
        return null; 
       } 
       System.IO.StreamReader sr = 
         new System.IO.StreamReader(resp.GetResponseStream()); 

       string respuesta = sr.ReadToEnd().Trim(); 
       return respuesta; 

      } 
      catch (Exception ex) 
      { 
       return ""; 
       //throw or return an appropriate response/exception 
      } 


     } 
    } 
} 
+1

谷歌有很多结果使用您的确切名称 – Jonesopolis

+0

没办法?你确定 ?我有几个小时寻找答案,但实际上我自己解决了我的谢谢 – daevst

回答

1

您可以创建一个代理类使用wsdl实用程序或svcutil在visualstudiocommand中提示输入命令wsdl.exe/out:[文件的路径和名称] /语言:CS

2

呃其实这里是我的代码,对于这类问题的人也是,

 public static string LlamarWebService(string url) 
     { 

      try 
      { 
       System.Net.WebRequest req = System.Net.WebRequest.Create(url); 

       req.ContentType = "application/json"; 
       req.Method = "GET"; 

       System.Net.WebResponse resp = req.GetResponse(); 
       if (resp == null) return null; 
       System.IO.StreamReader sr = 
         new System.IO.StreamReader(resp.GetResponseStream()); 

       string respuesta = sr.ReadToEnd().Trim(); 
       return respuesta; 

      } 
      catch (Exception ex) 
      { 
       throw ex; 
       // return ""; 
       //throw or return an appropriate response/exception 
      } 
     } 
+0

如果你只是要重新抛出它,你的捕获的目的是什么?如何清理req和resp和sr等资源?使用()是你的朋友! – n8wrl

相关问题