本文整理汇总了C#中HttpClient.Create方法的典型用法代码示例。如果您正苦于以下问题:C# HttpClient.Create方法的具体用法?C# HttpClient.Create怎么用?C# HttpClient.Create使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HttpClient
的用法示例。
在下文中一共展示了HttpClient.Create方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: VerificationIp
/// <summary>
/// 验证代理IP
/// </summary>
/// <returns></returns>
public static bool VerificationIp(string ip, int port)
{
var client = new HttpClient();
client.Setting.Proxy = new WebProxy(ip, port);
var content = client.Create<string>(HttpMethod.Get, "https://www.baidu.com").Send();
if (content.IsValid())
{
//Console.WriteLine(content.Result);
}
return content.IsValid();
}
示例2: GetProxyByHttp
/// <summary>
/// 通过IP商获取代理IP
/// </summary>
/// <param name="nums">每次提取的IP数目</param>
/// <returns></returns>
private string GetProxyByHttp(int nums = 1)
{
var client = new HttpClient();
while (true)
{
var content = client.Create<string>(HttpMethod.Get, "http://xvre.daili666api.com/ip/", data: new
{
tid = 557541152620047,
num = nums,
delay = 5,
//category = 2,
//sortby = "time",
//foreign = "none",
filter = "on"
}).Send();
if (content.IsValid())
{
return content.Result;
}
Thread.Sleep(1000 * 1); //一秒提取一次
}
}
示例3: BaseWork
/// <summary>
/// 基单元
/// </summary>
private void BaseWork()
{
var httpclient = new HttpClient();
while (TaskList.SurplusNum() > 0)
{
var company = TaskList.GetNextTask();
QgOrgCodeEntity target = new QgOrgCodeEntity { companyName = company, TaskGuid = TaskEntity.Unique, InsertTime = DateTime.Now };
//正文
string data = "callCount=1\r\nc0-scriptName=ServiceForNum\r\nc0-methodName=getData\r\nc0-id=2025_1440664403388\r\nc0-e1=string:jgmc%20%3D" + company + "%20%20not%20ZYBZ%3D('2')%20\r\nc0-e2=string:jgmc%20%3D" + company + "%20%20not%20ZYBZ%3D('2')%20\r\nc0-e3=string:" + company + "\r\nc0-e4=string:2\r\nc0-e5=string:" + company + "\r\nc0-e6=string:%E5%85%A8%E5%9B%BD\r\nc0-e7=string:alll\r\nc0-e8=string:\r\nc0-e9=boolean:false\r\nc0-e10=boolean:true\r\nc0-e11=boolean:false\r\nc0-e12=boolean:false\r\nc0-e13=string:\r\nc0-e14=string:\r\nc0-e15=string:\r\nc0-param0=Object:{firststrfind:reference:c0-e1, strfind:reference:c0-e2, key:reference:c0-e3, kind:reference:c0-e4, tit1:reference:c0-e5, selecttags:reference:c0-e6, xzqhName:reference:c0-e7, button:reference:c0-e8, jgdm:reference:c0-e9, jgmc:reference:c0-e10, jgdz:reference:c0-e11, zch:reference:c0-e12, strJgmc:reference:c0-e13, :reference:c0-e14, secondSelectFlag:reference:c0-e15}\r\nxml=true";
var context = httpclient.Create<string>(HttpMethod.Post, TargetUrl, data: data).Send();
if (context.IsValid())
{
GetEntityList(context.Result, company, TaskEntity.Unique).ForEach(t =>
{
new QgOrgCodeDomain().Add(t);
});
}
else
{
new QgOrgCodeDomain().Add(target);
}
}
}
示例4: SingelSearch
/// <summary>
/// 单个查询
/// </summary>
/// <param name="companyName"></param>
public void SingelSearch(string companyName)
{
var httpClient = new HttpClient();
httpClient.Setting.Timeout = 1000 * 5;
httpClient.Create<string>(HttpMethod.Post, firsturl).Send();
while (true)
{
var targetModel = new CrawlerEntity { 搜索名称 = companyName, 操作人姓名 = TaskEntity.OperatorName, 入爬行库时间 = TaskEntity.CreateTime, TaskGuid = TaskEntity.Unique };
try
{
//IP处理
var proxyEntity = new ProxyDomain().GetByRandom(); //代理IP
if (proxyEntity == null)
{
Console.WriteLine("在线代理临时获取策略启动。");
proxyEntity = Proxy.Proxy.GetInstance().GetHttProxyEntity();
Console.WriteLine("线上获取到了代理:{0}:{1}", proxyEntity.IpAddress, proxyEntity.Port);
}
httpClient.Setting.Proxy = new WebProxy(proxyEntity.IpAddress, proxyEntity.Port);
var resultBody = httpClient.Create<string>(HttpMethod.Post, targetUrl, data: new
{
queryStr = targetModel.搜索名称,
module = "",
idFlag = "qyxy"
}).Send();
if (!resultBody.IsValid())
{
RemoveOldIp(proxyEntity);
continue;
}
if (ValidText(resultBody.Result))
{
RemoveOldIp(proxyEntity);
continue;
}
//提取二级连接
var parser = new JumonyParser();
var urls = parser.Parse(resultBody.Result).Find("li a").ToList();
var nextUrl = "";
if (urls.Count < 1)
{
AddNull(targetModel);
break;
}
foreach (var htmlElement in urls)
{
targetModel.名称 = htmlElement.InnerText();
nextUrl = url + htmlElement.Attribute("href").AttributeValue;
}
//提取目标正文
var resultsecondBody =
httpClient.Create<string>(HttpMethod.Get, zhuUrl + new Uri(firsturl + nextUrl).Query).Send();
var nameValueCollection =
new NameValueCollection(URL.GetQueryString(new Uri(firsturl + nextUrl).Query));
if (!resultsecondBody.IsValid())
{
RemoveOldIp(proxyEntity);
continue;
}
if (ValidText(resultsecondBody.Result))
{
RemoveOldIp(proxyEntity);
continue;
}
//正文处理
var sorceIhtml = new JumonyParser().Parse(resultsecondBody.Result.Replace("<th", "<td"));
var tableLists = sorceIhtml.Find("table[class='f-lbiao']").ToList();
var listall = new List<string>();
foreach (var tableList in tableLists)
tableList.Find("tr td")
.ForEach(t => listall.Add(t.InnerText().TrimEnd(':').TrimEnd(':').Trim()));
var fillModel = FillModel(listall);
fillModel.全局唯一编号 = nameValueCollection["reg_bus_ent_id"].ToUpper();
new CrawlerDomain().Add(StrategyNo1(fillModel, targetModel));
//后续其他处理 包括了IP使用状态,以查询列表状态
proxyEntity.Usage = proxyEntity.Usage + 1;
new ProxyDomain().Update(proxyEntity);
Console.WriteLine("{0} 抓取到:{1}", Task.CurrentId, targetModel.搜索名称);
}
catch (Exception e)
{
new LogDomain().Add(new LogEntity { LogType = "error", TaskName = TaskEntity.TaskName, ErrorDetails = Task.CurrentId + "线程: " + e.Message, Details = e.ToString(), TriggerTime = DateTime.Now });
continue;
}
break;
}
}
示例5: DownloadPage
public static string DownloadPage(HttpMethod method, string url)
{
HttpClient client = new HttpClient();
HttpContext<string> context = client.Create<string>(method, url);
context.Send();
return context.Result;
}