简体   繁体   中英

Getting Unauthorized error when trying to execute the RestSharp request that retrieves data from ArangoDB

If I send the http request through Postman it works and I get the result. But the same is not working and getting Unauthorized when I execute through RestSharp.

Below is the code snippet:

var client = new RestClient(
   "http://Username:Password@localhost:port/_db/databaseName/_api/simple/all");
var request = new RestRequest(Method.PUT);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", 
     "{\n    \"collection\":\"collectionName\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
return response;

According to the restsharp wiki you cannot specify the authentication parameters via the URL:

var client = new RestClient("http://example.com");
client.Authenticator = new SimpleAuthenticator("username", "foo", "password", "bar");
var request = new RestRequest("resource", Method.GET);
client.Execute(request);

in general its a good idea in such a case to drop https, and use wireshark or ngrep to inspect whats going on on the wire:

GET /_db/_system/_api/version?details=true HTTP/1.1
Host: 127.0.0.1
Connection: Keep-Alive
User-Agent: ArangoDB
Accept-Encoding: deflate
Authrization: Basic cm9vdDo=

to inspect the actualy generated authentication headers.

var client = new RestClient("http://example.com");
client.Authenticator = new SimpleAuthenticator("admin","admin");
var request = new RestRequest(Method.GET);
client.Execute(request);

This works for me..

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM