2016-08-27 5 views
0

Bitcoin 거래에 BitStamp를 사용하고 있으며 API를 사용하여 잔액을 확인하려고합니다.C# HttpWebRequest 403 BitStamp API Post에서 금지됨

인증없이 양식 - 데이터 또는 x-www-form-urlencoded 중 하나를 사용하여 우편 발송자를 사용하여 API를 테스트 할 때 잘 작동합니다. 하지만 대부분,

<html> 
    <head><title>Test</title></head> 
    <body> 
     <form action="https://www.bitstamp.net/api/v2/balance/btcusd/" method="post"> 
      <input type="text" name="key" value="SomeKey" /> 
      <input type="text" name="signature" value="SomeSignature" /> 
      <input type="text" name="nonce" value="123456789" /> 
      <input type="submit" value="Test" /> 
     </form> 
    </body> 
</html> 

그러나 내가 피들러의 게시물에서 보았다

try 
{ 
    HttpWebRequest getApiRequest = (HttpWebRequest)HttpWebRequest.Create("https://www.bitstamp.net/api/v2/balance/btcusd/"); 

    getApiRequest.Method = "POST"; 

    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; 

    getApiRequest.ContentType = "application/x-www-form-urlencoded;"; 
    string FormData = "key=SomeKey&signature=SomeSignature&nonce=123456789" 
    StreamWriter formWrite = new StreamWriter(getApiRequest.GetRequestStream()); 
    formWrite.Write(FormData); 
    formWrite.Flush(); 
    formWrite.Close(); 

    StreamReader resultReader = new StreamReader(getApiRequest.GetResponse().GetResponseStream()); 
    string result = resultReader.ReadToEnd(); 
    resultReader.Close(); 
    return result; 
} 
catch (Exception e) 
{ 
    return e.Message; 
} 

예외 403 금지 오류가 계속 HttpWebRequest를 함께 그 일 : 심지어 단지 브라우저를 통해 게시 그것은 완벽하게 작동 부분은 같아 보인다. 하지만 필자가 필더를 올바르게 사용하고 있는지 확실하지 않습니다. 나는 Content-Type "multipart/form-data"를 시도했다. 테두리와 모든 것으로 올바르게 작성된 FormData로 운이 없습니다. 나는 사용자 에이전트를 설정하려고 시도했지만 아직 운이 없다. 내가 뭘 놓치고 있니?

답변

0

예외가 발생하더라도 웹 예외 인 경우 응답을받을 수 있다는 것을 알았습니다.

catch (WebException we) 
{ 
    StreamReader resultReader = new StreamReader(we.Response.GetResponseStream()); 
    string result = resultReader.ReadToEnd(); 
    resultReader.Close(); 
    return result; 
} 
catch (Exception e) 
{ 
    return e.Message; 
} 

는 응답에서 나는 내가 사용하는 넌스 내가 이전에 사용했던 하나 따라서 오류가 있음을 보았다.