使用HttpWebRequest进行轮询

时间:2016-11-12 07:56:27

标签: c# .net http-post httpwebrequest cloudsight

我使用this API接受图片并发回其内容的说明。根据文档,cURL看起来像这样:

512 << 1 = 1024

我发送请求的代码如下:

 curl -i -X POST \
-H "Authorization: CloudSight [key]" \
-F "image_request[image]=@Image.jpg" \
-F "image_request[locale]=en-US" \
https://api.cloudsightapi.com/image_requests

请求已成功发送,但服务返回var request = (HttpWebRequest)WebRequest.Create(cloudsight_url); request.Method = "POST"; request.Headers.Add("Authorization", "CloudSight R6USrcKxMym0EP2peuYtVA"); string s1 = string.Format("image_request[locale]={0}&image_request[remote_image_url]={1}", "en-US", imgurl); // Send Data StreamWriter myWriter = null; myWriter = new StreamWriter(request.GetRequestStream()); myWriter.Write(s1); myWriter.Close(); var response1 = (HttpWebResponse)request.GetResponse(); string result2 = ""; using (StreamReader streamReader = new StreamReader(response1.GetResponseStream())) { var output = streamReader.ReadToEnd(); streamReader.Close(); result2 = output.ToString(); } 。在文档中,它表示继续轮询响应,直到返回{ "status" : "not completed" }响应。我怎么做到这一点?

1 个答案:

答案 0 :(得分:1)

正如您所指出的那样,文档指出您应该继续轮询,直到响应标记为已完成。

您真正需要做的就是将您的HTTP Web请求放入一个循环,直到完成为止。在一段时间后退出循环可能也是一个好主意,但没有成功,以避免无限循环。将循环放在一个单独的线程上也许是明智的。