C#模拟http 发送post或get请求

/// <summary>
/// 根据经纬度获取城市名称
/// </summary>
/// <param name="lat">纬度</param>
/// <param name="lng">经度</param>
/// <returns>城市名称</returns>
public static string GetCity(string lat, string lng)
{
string url = string.Format(
"{0}?output={1}&ak={2}&location={3},{4}",
ConfigurationManager.AppSettings["BaiduGeocodingApi"],
"json",
ConfigurationManager.AppSettings["BaiduAK"],
lat,
lng);

string cityString = RemoteQuery.GetResponse(url);
if (string.IsNullOrEmpty(cityString)) return string.Empty;

JObject city = (JObject)JsonConvert.DeserializeObject(cityString);

if (city["status"].ToString() != "0")
{
log.Error("Get city error with status: " + city["status"]);
return string.Empty;
}

return (string)city["result"]["addressComponent"]["city"];
}

public static string GetResponse(string accessUrl)
{
string response = string.Empty;
try
{
#region 访问服务url,并获取返回的json数据
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(accessUrl);
request.Method = "GET";
request.ContentType = "application/x-www-form-urlencoded";
request.Credentials = CredentialCache.DefaultCredentials;
request.Timeout = 10000;
HttpWebResponse httpWebResponse = null;
httpWebResponse = request.GetResponse() as HttpWebResponse;
StreamReader sr = new StreamReader(httpWebResponse.GetResponseStream(), Encoding.UTF8);
response = sr.ReadToEnd();
sr.Close();
#endregion
}
catch (Exception ex)
{
log.Info("Error when accessing: " + accessUrl);
log.Error(ex.Message);
}
return response;
}
}

<!--配置文件weather  longitude=116.31985&latitude=39.959836 北京市-->
<add key="BaiduWeatherApi" value="http://api.map.baidu.com/telematics/v3/weather" />
<add key="BaiduAK" value="3lX7GmQLza5KzQWde4ZIzMul" />

时间: 2024-10-31 16:11:53

C#模拟http 发送post或get请求的相关文章

【转】使用java程序模拟页面发送http的post请求

在web应用程序中,一般都是通过页面发送http的post请求,但也可以使用java程序来模拟页面发送请求,代码如下: [java] view plaincopy import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.

php模拟发送GET和POST请求

php分别模拟发送GET和POST请求,非常实用的额,也可作PHP CURL入门级的理解教材的,示例代码如下: <?php /* ** php分别模拟发送GET与POST请求 ** */ function httpRequest($url,$method,$params=array()){ if(trim($url)==''||!in_array($method,array('get','post'))||!is_array($params)){ return false; } $curl=cu

php使用curl模拟多线程发送请求

每个PHP文件的执行是单线程的,但是php本身也可以用一些别的技术实现多线程并发比如用php-fpm进程,这里用curl模拟多线程发送请求.php的curl多线程是通过不断调用curl_multi_exec来获取内容,这里举一个demo来模拟一次curl多线程并发操作. 1 /** 2 * Subject:php模拟多线程请求curl返回结果 3 * User: luokakale 4 * Date: 2018/11/3 5 * Time: 11:14 6 */ 7 8 //设置缓冲为0(也可以

python用httplib模块发送get和post请求

在python中,模拟http客户端发送get和post请求,主要用httplib模块的功能. 1.python发送GET请求 我在本地建立一个测试环境,test.php的内容就是输出一句话: 1 echo 'Old friends and old wines are best.'; python发送get请求代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #!/usr/bin/env python #coding=utf8 i

Http学习之使用HttpURLConnection发送post和get请求(3)

使用HttpURLConnection发送post和get请求 但我们常常会碰到这样一种情况: 通过HttpURLConnection来模拟模拟用户登录Web服务器,服务器使用cookie进行用户认证.在模拟登录时,Post表单数据后可以正确登录(登陆成功时会response一个cookie,然后redirect到main page,不成功则redirect到login page),但是在使用HttpURLConnection再次连接服务器其他页面(或者即使是当前的response里是redir

记:使用python模拟浏览器发送http消息

python自带的urllib,urllib2可以极方便做http操作,在我们按照http方式提交消息请求后,有可能会看见返回这个错误“403 forbidden",这是请求的网站做了阻止,于是我们需要把自己伪装成模拟器.对此,可以加上headers={'User-Agent':user-agent,'cookie':cookie},注意操作的网站 需要登录账号的话,就需要加上cookie,这两个值可以通过chrome的”开发者工具“查看: 把他们加上去,然后在请求值那里再加上: req = u

Linux命令模拟Http的get或post请求

Http请求指的是客户端向服务器的请求消息,Http请求主要分为get或post两种,在Linux系统下可以用curl和wget命令来模拟Http的请求. get请求: 1.使用curl命令: curl "http://www.baidu.com" 如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地 curl -i "http://www.baidu.com" 显示全部信息 curl -l "http://www.baidu.com"

iOS开发网络篇—发送GET和POST请求(使用NSURLSession)

iOS开发网络篇—发送GET和POST请求(使用NSURLSession) 说明: 1)该文主要介绍如何使用NSURLSession来发送GET请求和POST请求 2)本文将不再讲解NSURLConnection的使用,如有需要了解NSURLConnection如何发送请求. 详细信息,请参考:http://www.cnblogs.com/wendingding/p/3813706.html 3)本文示例代码发送的请求均为http请求,已经对info.plist文件进行配置. 如何配置,请参考:

在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求

通用辅助类 下面是我编写的一个辅助类,在这个类中采用了HttpWebRequest中发送GET/HTTP/HTTPS请求,因为有的时候需要获取认证信息(如Cookie),所以返回的是HttpWebResponse对象,有了返回的HttpWebResponse实例,可以获取登录过程中返回的会话信息,也可以获取响应流. 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text;