CloudFlare削减HTTP POST内容

时间:2013-03-10 10:24:24

标签: c# .net http proxy http-post

我与CloudFlare背后的服务器进行通信。我很少从服务器收到错误,好像它没有收到我的HTTP POST请求的内容。它很少发生(可能是1-2%)。此外,如果我只是立即重新发送相同的请求,它在大多数(~99%)的情况下工作正常。

当服务器不在CloudFlare之后或者他们使用其他类似服务时,我没有遇到任何问题。此外,如果服务器暂时移出CloudFlare,问题就会消失。我与CloudFlare背后的另一台服务器存在完全相同的问题。

我正在使用C#.NET 4.5。连接是安全的(HTTPS)。

我使用Fiddler捕获了HTTP请求/响应。我看到“坏”和“好”请求之间绝对没有区别。

POST https://btc-e.com/tapi HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Key: ****************
Sign: e94eb19d4cdf29b6629c2acc6934bacdf502bdc93c14a44521ef9d64823f4ab560ef14fce468b7df897f0b2f2f4677c4191801f7453c784bda7fd0ede4b95f59
Host: btc-e.com
Content-Length: 42

nonce=1362901653&method=OrderList&active=1

======================================================

HTTP/1.1 200 OK
Server: cloudflare-nginx
Date: Sun, 10 Mar 2013 08:41:16 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.4.12
X-Frame-Options: DENY
Expires: Sun, 17 Mar 2013 08:40:56 GMT
Cache-Control: max-age=604800
Set-Cookie: __cfduid=****************; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.btc-e.com
CF-RAY: 4ceb4731fea02d9

10e
{"success":0,"error":"*************"} 0
0

我正在使用以下代码,但我认为它不相关:

byte[] data = Encoding.ASCII.GetBytes(BuildPostData(args)); //values are properly encoded using HttpUtility.UrlEncode

HttpWebRequest request = WebRequest.CreateHttp(ApiUri);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
request.Timeout = 5000;
request.Headers.Add("Key", Key);
request.Headers.Add("Sign", sign);    

using (Stream outStream = request.GetRequestStream())
{
    outStream.Write(data, 0, data.Length);
    outStream.Flush();
}

using (WebResponse response = request.GetResponse())
using (var streamReader = new StreamReader(response.GetResponseStream()))
    result = JObject.Parse(streamReader.ReadToEnd());

我已经尝试过但没有取得任何成功:

  • HTTP 1.1 / 1.0
  • KeepAlive开启/关闭
  • 期待100-继续开/关
  • 启用/禁用Cookie
  • 发送/关闭chunked

有什么想法吗?

更新: 2013-05-01问题消失了。客户端没有变化。 3-4周过后......

0 个答案:

没有答案