1、先看一下接口地址:
http://ip.ws.126.net/ipquery?ip=106.120.159.68
返回的数据如下:
var lo="北京市", lc="北京市"; var localAddress={city:"北京市", province:"北京市"}
2、使用正则表达式进行匹配,获取省份和城市
string url = "http://ip.ws.126.net/ipquery?ip=106.120.159.68";
string result="";
WebRequest wrt = null;
WebResponse wrp = null;
try
{
wrt = WebRequest.Create(url);
wrt.Credentials = CredentialCache.DefaultCredentials;
wrp = wrt.GetResponse();
StreamReader sr = new StreamReader(wrp.GetResponseStream(), Encoding.Default);
string html = sr.ReadToEnd();
string pattern = "{city:\"(?<key1>.*?)\", province:\"(?<key2>.*?)\"}";
Regex regex = new Regex(pattern, RegexOptions.None);
Match match = regex.Match(html);
//城市
string city= match.Groups["key1"].Value;
//省份
string province=match.Groups["key2"].Value;
}
catch (Exception){}
finally
{
if (wrp != null)
wrp.Close();
if (wrt != null)
wrt.Abort();
}
正则表达式的写法:
1、需要匹配获取的内容,使用(?<key>.*?)代替,其中key为键。
2、双引号要用转义斜杠。