![](/img/trans.png)
[英]FortiGate API POST Request returns 403 Forbidden with C# RestSharp
[英]C# HttpWebRequest 403 Forbidden on BitStamp API Post
我正在使用BitStamp進行比特幣交易,並且試圖使用API檢查我的余額。
當我使用Postman在未經身份驗證的情況下使用帶有格式數據或x-www-form-urlencoded的Postman測試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>
但是用HttpWebRequest做到這一點我一直收到403 Forbidden錯誤
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;
}
我看過《提琴手》中的帖子,但在大多數情況下看起來都是一樣的。 但是,坦率地說,我不確定我是否正確使用了Fiddler。 我嘗試了Content-Type“ multipart / form-data;” 用正確的邊框和所有內容正確書寫FormData,沒有運氣。 我嘗試設置用戶代理,仍然沒有運氣。 我想念什么?
我發現即使拋出異常,即使是網絡異常,我仍然可以得到響應。
catch (WebException we)
{
StreamReader resultReader = new StreamReader(we.Response.GetResponseStream());
string result = resultReader.ReadToEnd();
resultReader.Close();
return result;
}
catch (Exception e)
{
return e.Message;
}
從響應中我看到我使用的隨機數是我以前使用過的隨機數,因此是錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.