牛骨文教育服务平台(让学习变的简单)
博文笔记

C# 网络API接口使用

创建时间:2017-04-10 投稿人: 浏览次数:1883

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

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。