C# 如何使用rest Sharp传递x-APi-key
我正在尝试在Rest sharp中将api密钥作为头发送,这就是我正在尝试的 我收到C# 如何使用rest Sharp传递x-APi-key,c#,python,rest,restsharp,C#,Python,Rest,Restsharp,我正在尝试在Rest sharp中将api密钥作为头发送,这就是我正在尝试的 我收到{“状态”:403,“消息”:“禁止”} 我成功地在Python中获得了相同的请求,这很好,如何在Rest sharp中执行相同的操作 import requests # Create User/ headers = { 'Host': 'host..', 'x-api-key': 'yxyxyxyx', 'content-type': 'application/x-www-form-
{“状态”:403,“消息”:“禁止”}
我成功地在Python中获得了相同的请求,这很好,如何在Rest sharp中执行相同的操作
import requests
# Create User/
headers = {
'Host': 'host..',
'x-api-key': 'yxyxyxyx',
'content-type': 'application/x-www-form-urlencoded',
}
data = 'email=example18@gmail.com&password=example1&terms_and_conditions=true'
response = requests.post('https://sampeurl/v3/members', headers=headers, data=data)
print(response.content)
如果在查询参数中发送数据,则此处有错误:
request.Resource=string.Format(“/v3/members/email={0}&password={1}&terms\u和\u conditions=true”,email,password)代码>
应该是
request.Resource=string.Format(“/v3/members?email={0}&password={1}&terms\u和\u conditions=true”,email,password)代码>
当我阅读python request.post docs时,数据不是查询体。因此,您需要创建
request.AddBody(新的{A=“foo”,B=“bar”})
此外,此psot也会有所帮助
看起来您的C#中有一个错误已经指向您,但它必须是成员?电子邮件而不是成员/email
如果您处理的是AWS Api网关,后者将注册为一个完全不同的端点,这可能会导致向您抛出各种奇怪的状态代码,403在这种情况下可能是可以接受的
接下来,我将使用以下方法,而不是像您一样向url添加参数:
request.AddParameter(string name, string value);
你上面写的一个例子是
公共静态iRestreponse CreateNewUser(字符串环境、字符串电子邮件、字符串密码)
{
NameValueCollection环境=ValidateEnv(环境);
字符串baseurlenv=Env[“baseapirl”];
var environments=newendpointproviders();
var Client=new RestClient();
Client.BaseUrl=新Uri(baseurlenv);
var请求=新的重新请求(Method.POST);
//资源应该只是路径
request.Resource=string.Format(“/v3/members”);
//这就是如何添加参数
request.AddParameter(“email”,email);
request.AddParameter(“密码”,password);
请求。添加参数(“条款和条件”,“真实”);
//假设您将实际的x-api-key放在这里,这看起来是正确的
请求.AddHeader(“x-api-key”、“YX”);
//您可能需要配置aws api网关以接受该资源上的此内容类型标头。这取决于您对它的锁定程度
request.AddHeader(“内容类型”、“应用程序/x-www-form-urlencoded”);
IRestResponse response=Client.Execute(请求);
控制台写入线(请求);
如果(!IsReturnedStatusCodeOK(响应))
{
抛出新的HttpRequestException(“请求问题->HTTP代码:“+response.StatusCode”);
}
返回响应;
}
好的,我知道了,我检查了邮递员,我无法通过邮递员提出请求,我被禁止访问,但是python工作成员?电子邮件vs成员/email
秒是不好的。我知道我已经更改了,但我仍然无法获得回复。您的代码可能会有错误,原因至少有5个。您需要调试代码,或者创建一个适当的邮递员请求,查看“适当”的含义。
request.AddParameter(string name, string value);