Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用rest Sharp传递x-APi-key_C#_Python_Rest_Restsharp - Fatal编程技术网

C# 如何使用rest Sharp传递x-APi-key

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-

我正在尝试在Rest sharp中将api密钥作为头发送,这就是我正在尝试的

我收到
{“状态”: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);