C# 网络API接口使用

    xiaoxiao2021-03-25  105

    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 + "\t\t" + reader.ValueType+ "\t\t" + 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

    转载请注明原文地址: https://ju.6miu.com/read-23548.html

    最新回复(0)