![](/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.