我有这个代码超时,因为有很多来自服务器的数据。有谁知道是否有办法停止超时?
static List<PhraseSource> GetPhrases()
{
var request = HttpWebRequest.Create("http://aaa.cloudapp.net/api/Phrase/GetJDTO");
request.ContentType = "application/json";
request.Method = "POST";
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
string json = Newtonsoft.Json.JsonConvert.SerializeObject(new
{
form = "2", // just get words
type = "0"
});
streamWriter.Write(json);
}
这是我的C#服务器代码。不确定,但也许那里也有问题,但现在它似乎在客户端:
[HttpPost]
[AllowAnonymous]
[Route("GetJDTO")]
public async Task<IHttpActionResult> GetJDTO([FromBody] GetJDTOOptions options)
{
IQueryable<Phrase> query = null;
query = db.Phrases.AsQueryable();
答案 0 :(得分:1)
您致电WebRequest
时返回的HttpWebRequest.Create
对象有Timeout
属性。在HttpWebRequest
的情况下,默认为100秒。
在您的示例中,如果需要,可以将其设置为更高的值。 e.g:
...
request.Method = "POST";
request.Timeout = **numberOfMilliseconds**;
您可能需要考虑问题评论中@thisextendsthat建议的分页等,但Timeout
解决了您的具体问题。
当您特别询问完全停止超时时,您可以使用Timeout.Infinite(如文档中所述),但这可能会破坏您的客户端体验等。