我正在使用RESTSHARP调用WEB API,它们工作正常.但是,对API的初始调用(无论是什么调用)有时可能需要10秒才能得到响应.之后的其他所有电话都非常快.有没有人知道这方面的方法?
我正在运行WPF 4.0应用程序
码:
var client = new RestClient(apiAddress);
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
Run Code Online (Sandbox Code Playgroud) 来自 node.js 我可以这样做来告诉 node.js 使用 ipv6 和 ipv4 发出请求
var http = require("http");
var options = {
hostname: "google.com",
family: 4, // set to 6 for ipv6
};
var req = http.request(options, function(res) {
.. handle result here ..
});
req.write("");
req.end();
Run Code Online (Sandbox Code Playgroud)
设置family为4强制 ipv4,将其设置为6强制 ipv6。不设置它可以让任何一个工作。
我如何在 C# (.NET 3.5) 中做同样的事情
我可以想到一种方法,即自己为 A 或 AAAA 记录发出 DNS 请求,发出直接 IP 请求并设置host:标头。有没有更好的办法?
尝试并行执行大量HTTP Get请求,每个任务一个.如果我通过Internet Explorer浏览器,他们几乎立即返回,但是当通过任务调用代码时,我第一次关闭它们时,它们需要花费几秒钟才能返回,但是第二次运行它们会像我期望的那样返回.所以要么我正在做一些阻塞某事的东西,要么是因为某些原因线程没有启动?这是我第一次尝试使用TPL.
这是基本的查找类:
public class Lookup
{
public string Name { get; set; }
public string URL { get; set; }
public Lookup(string Name, string URL)
{
this.Name = Name;
this.URL = URL;
}
public LookupReturn DoLookup()
{
LookupReturn d = new LookupReturn();
d.Name = this.Name;
d.URL = this.URL;
WebRequest wrGETURL;
wrGETURL = WebRequest.Create(this.URL);
Stream objStream;
objStream = wrGETURL.GetResponse().GetResponseStream();
StreamReader objReader = new StreamReader(objStream);
string sLine = objReader.ReadToEnd();
d.Result = sLine;
return d;
}
}
Run Code Online (Sandbox Code Playgroud)
返回类型很简单:
public class LookupReturn …Run Code Online (Sandbox Code Playgroud)