关于.NET调用WebService的方法

luhongbin220 2013-03-19 03:56:30
小弟我想调用SOGOU地图的WebService

这是搜狗给出的
XML输出 以下是一个HTTP请求实例:

http://api.go2map.com/engine/api/geocoder/xml?city=北京市&addr=北京市海淀区中关村东路一号院

XML结果显示如下所示:

<xml>
<response>
<keyword>北京市海淀区中关村东路一号院</keyword>
<match>海淀区中关村东路一号院7号楼威盛大厦</match>
<y>4837046.995794</y>
<city>北京市</city>
<x>1.2949190267684E7</x>
</response>
<status>ok</status>
</xml>


但是我只会用项目里引用过的WebService,想请问下,要在后台根据这种URL去调用WebService的话需要如何写后台代码呢?
...全文
323 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
luhongbin220 2013-03-19
  • 打赏
  • 举报
回复
引用 5 楼 chb345536638 的回复:
引用 4 楼 luhongbin220 的回复: 引用 2 楼 gxingmin 的回复:搜狗地图有API接口,上面有例子,直接在js里就可以调用 我不要用JS。。。我需要做个程序不停的在后台运行,不需要显示页面 你想说的是这个吧,通过url获取内容
有点相似吧,但是他这个XML不知道为什么在页面上不显示,如果用JSON的估计你这个可以~~
echo0808 2013-03-19
  • 打赏
  • 举报
回复
百度一下WebClient
Trouble___Maker 2013-03-19
  • 打赏
  • 举报
回复
貌似可以用post
luhongbin220 2013-03-19
  • 打赏
  • 举报
回复
呵呵,搞定了

static void Main(string[] args)
        {
            GetSoGouXML();
        }

        public static void GetSoGouXML()
        {
            string ServerPage = "http://api.go2map.com/engine/api/geocoder/";
            try
            {
                ServerPage += "/xml";//WebService中的方法
                string strCity = "北京市";//第一个参数
                string strAddr = "北京市海淀区中关村东路一号院";//第二个参数
                string res = HttpConnectToServer(ServerPage, strCity, strAddr);
            }
            catch (Exception ex)
            {
                //
            }
        }

        //发送消息到服务器
        public static string HttpConnectToServer(string ServerPage, string strXml, string strData)
        {
            string postData = "city=" + strXml + "&addr=" + strData;

            byte[] dataArray = Encoding.Default.GetBytes(postData);
            //创建请求
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(ServerPage);
            request.Method = "POST";
            request.ContentLength = dataArray.Length;
            request.ContentType = "application/x-www-form-urlencoded";
            //创建输入流
            Stream dataStream = null;
            try
            {
                dataStream = request.GetRequestStream();
            }
            catch (Exception)
            {
                return null;//连接服务器失败
            }

            //发送请求
            dataStream.Write(dataArray, 0, dataArray.Length);
            dataStream.Close();
            //读取返回消息
            string res = string.Empty;
            try
            {
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
                res = reader.ReadToEnd();
                reader.Close();
            }
            catch (Exception ex)
            {
                return null;//连接服务器失败
            }
            return res;
        }
  • 打赏
  • 举报
回复
引用 4 楼 luhongbin220 的回复:
引用 2 楼 gxingmin 的回复:搜狗地图有API接口,上面有例子,直接在js里就可以调用 我不要用JS。。。我需要做个程序不停的在后台运行,不需要显示页面
你想说的是这个吧,通过url获取内容
luhongbin220 2013-03-19
  • 打赏
  • 举报
回复
引用 2 楼 gxingmin 的回复:
搜狗地图有API接口,上面有例子,直接在js里就可以调用
我不要用JS。。。我需要做个程序不停的在后台运行,不需要显示页面
gxingmin 2013-03-19
  • 打赏
  • 举报
回复
搜狗地图有API接口,上面有例子,直接在js里就可以调用
skcry 2013-03-19
  • 打赏
  • 举报
回复
以前貌似用过post来调webservice

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧