栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从.NET控制台调用JSON WebService的最佳方法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从.NET控制台调用JSON WebService的最佳方法

我使用HttpWebRequest从Web服务中获取,该服务返回了一个JSON字符串。看起来像这样的GET:

// Returns JSON stringstring GET(string url) {    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);    try {        WebResponse response = request.GetResponse();        using (Stream responseStream = response.GetResponseStream()) { StreamReader reader = new StreamReader(responseStream, System.Text.Encoding.UTF8); return reader.ReadToEnd();        }    }    catch (WebException ex) {        WebResponse errorResponse = ex.Response;        using (Stream responseStream = errorResponse.GetResponseStream())        { StreamReader reader = new StreamReader(responseStream, System.Text.Encoding.GetEncoding("utf-8")); String errorText = reader.ReadToEnd(); // log errorText        }        throw;    }}

然后,我使用JSON.Net动态解析字符串。另外,您可以使用以下Codeplex工具从示例JSON输出静态生成C#类:http
:
//jsonclassgenerator.preplex.com/

POST看起来像这样:

// POST a JSON stringvoid POST(string url, string jsonContent) {    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);    request.Method = "POST";    System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();    Byte[] byteArray = encoding.GetBytes(jsonContent);    request.ContentLength = byteArray.Length;    request.ContentType = @"application/json";    using (Stream dataStream = request.GetRequestStream()) {        dataStream.Write(byteArray, 0, byteArray.Length);    }    long length = 0;    try {        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { length = response.ContentLength;        }    }    catch (WebException ex) {        // Log exception and throw as for GET example above    }}

我在我们的Web服务的自动化测试中使用了这样的代码。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/395421.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号