C# 网络API接口使用
1. 用HttpClient访问网络API获取网页内容:
Uri uri = new Uri(“http://api.k780.com:88/?app=phone.get&phone=13800138000&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=xml”);//Uri页面为Json字符串或XML字符串
HttpClient client = new HttpClient();
string result = await client.GetStringAsync(uri);//Json或XML字符串
或者
Uri uri = new Uri(“”);//Uri页面为Json字符串或XML字符串
HttpClient client = new HttpClient();
HttpResponseMessage response = await httpClient.GetAsync(uri);
response.EnsureSuccessStatusCode();//如果出现错误,则抛出异常
string result = await response.Content.ReadAsStringAsync();////Json或XML字符串
附异常处理:
if (response.StatusCode == HttpStatusCode.OK)
{
//
}
或:
if (response.IsSuccessStatusCode)
{
// ...
}
或:
try
{
HttpResponseMessage response = postTask.Result;
response.EnsureSuccessStatusCode();
}
catch (HttpRequestException e)
{
// ...
}
2. Json解析
(1)使用JsonReader读Json字符串:
string jsonText =@"{""input"" : ""value"",""output"" : ""result""}";
JsonReader reader = new JsonTextReader(new StringReader(jsonText));
while (reader.Read())
{
Console.WriteLine(reader.TokenType + " " + reader.ValueType+ " " + reader.Value);
//一共循环6次,输出依次为“start”“input”“value”“output”“result”“end”.
}
(2)使用JsonWriter写字符串:
StringWriter sw = new StringWriter();
JsonWriter writer = new JsonTextWriter(sw);
writer.WriteStartObject();
writer.WritePropertyName("input");
writer.WriteValue("value");
writer.WritePropertyName("output");
writer.WriteValue("result");
writer.WriteEndObject();
writer.Flush();
string jsonText =sw.GetStringBuilder().ToString();
Console.WriteLine(jsonText);
(3)使用JObject读写字符串:
JObject jo = JObject.Parse(jsonText);
string[] values =jo.Properties().Select(item => item.Value.ToString()).ToArray();
//得到的是一个字符串数组存储每个value值
(4)读取数组
string jsonArrayText1 ="[{"a":"a1","b":"b1"},{"a":"a2","b":"b2"}]";
JArray ja =(JArray)JsonConvert.DeserializeObject(jsonArrayText1);
string ja1a =ja[1]["a"].ToString(); //值为a2
//或者
JObject o = (JObject)ja[1];
string oa = o["a"].ToString();
(5)嵌套格式
string jsonText ="{"beijing":{"zone":"海淀","zone_en":"haidian"}}";
JObject jo =(JObject)JsonConvert.DeserializeObject(jsonText);
string zone =jo["beijing"]["zone"].ToString();
string zone_en =jo["beijing"]["zone_en"].ToString();
3.XML解析:
var xml = new XmlDocument();
xml.LoadXml(result);
得到XML文件之后就可以根据XML对节点的操作方式去获取自己想要的元素,如:
company.Text = xml.GetElementsByTagName("operators")[0].InnerText;
area.Text = xml.GetElementsByTagName("style_simcall")[0].InnerText;
4. VS使用:
要在项目的NUGet中安装:Newtonsoft.Json。才可解析Json.
5. 博客资源来源于以下博客,更多详情请参考:
http://www.cnblogs.com/wywnet/p/httpclient.html
http://blog.csdn.net/coolszy/article/details/8606803
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: layDate(最喜欢的日期组件,没有之一)
- 下一篇: 工作流相关API实例