相同查询的不同答案cUrl(Steam Market)

时间:2015-08-02 15:30:13

标签: php curl steam steam-web-api

在浏览器中,您可以点击以下链接:

  

http://steamcommunity.com/market/priceoverview/?country=US%C2%A4cy=5&appid=570&market_hash_name=Gem%20of%20Taegeuk

给出{“成功”:false},在标题500中出错。但是当我通过cUrl做同样的询问时

type
  TMyRec = array of record
    Name: string;
    Value: Variant; 
    // more fields
  end;

procedure TForm1.Button1Click(Sender: TObject);
var
  OldRecord, NewRecord: TMyRec;
begin
  SetLength(OldRecord, 1);
  OldRecord[0].Name := 'Test';
  OldRecord[0].Value := 'old';

  ShowMessage(OldRecord[0].Value); // old

  // SetLength(OldRecord, 1);
  NewRecord := OldRecord;
  NewRecord[0].Value := 'new';

  ShowMessage(OldRecord[0].Value); // new
  ShowMessage(NewRecord[0].Value); // new
end;

作为回应,我没有得到这个:

  

<ЄV* .MNN-.VІJKМ)NяятКC4

告诉我如何解决这个问题以及可能导致错误的原因(500)?

2 个答案:

答案 0 :(得分:0)

两个问题:

1)示例链接中%C2%A4cy%之后还有currencountry=US。 CURL中的URL看起来没问题。

2)您的CURL命令不遵循重定向,URL应该是https://(浏览器会自动执行此操作)。您可以使用curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

关注重定向

答案 1 :(得分:0)

服务器返回gzipped响应(标头Content-Encoding: gzip)。所以,你需要自动编码:

curl_setopt($ch,CURLOPT_ENCODING, '');

P.S。与curl不同的浏览器会自动解压缩响应。