2016-03-08 316 views
0

我試圖從cUrl命令轉換爲C#HttpClient,但它們返回2個不同的響應。c#將curl命令轉換爲HttpClient

這裏是捲曲的呼叫,我需要使用:

curl https://auth-api-suat.vndirect.com.vn/auth/info -H 'Content-type: application/json' \ -H 'X-AUTH-TOKEN: 123' \ -X GET 

,並返回

{"error":"AUTH-03","message":"Invalid token","description":""} 

所以我明白,它通過認證,問題是令牌無效。

下面是C#代碼,我嘗試寫:

HttpClient hc = new HttpClient(); 
hc.BaseAddress = new Uri(api); 
hc.DefaultRequestHeaders.Accept.Clear();    
hc.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
hc.DefaultRequestHeaders.Add("x-auth-token", "123"); 

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "auth/info"); 
HttpResponseMessage response = await hc.SendAsync(request); 

和響應返回

{StatusCode: 401, ReasonPhrase: 'Unauthorized', Version: 1.1, Content: System.Net.Http.StreamContent,...} 

因此,我認爲,不通過認證。

任何人都可以爲我解釋一下嗎?爲什麼有2個不同的響應?

回答

0

使用authorization header

組授權令牌替換

hc.DefaultRequestHeaders.Add("x-auth-token", "123"); 

hc.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("x-auth-token","123");