2016-10-19 5 views
0

응용 프로그램에서 성경 API를 사용하려고합니다. 여기에 내가다음 CURL 호출을 C#으로 변환하는 방법

curl -L -u #{API Token}:X -k https://bibles.org/v2/verses/eng-GNTD:Acts.8.34.xml 
  • -L 옵션을해야 다음 컬 전화 리디렉션을 따르도록 컬을 알려줍니다.
  • HTTP 기본 인증에서 사용자 이름과 암호를 지정하는 -u 옵션. API 토큰이 사용자 이름으로 제공됩니다. 비밀번호는 서버가 무시한 이므로 원하는 것을 넣을 수 있습니다. 우리의 경우 "X".
  • -k 옵션은 SSL 인증서를 확인하지 않도록 cURL에 알리는 데 사용됩니다.

이제 문서는 내가 다음에 C#에서이 변경 시도

<?php 
$token = '#{API Token}'; 
$url = 'https://bibles.org/v2/verses/eng-GNTD:Acts.8.34.xml'; 

// Set up cURL 
$ch = curl_init(); 
// Set the URL 
curl_setopt($ch, CURLOPT_URL, $url); 
// don't verify SSL certificate 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
// Return the contents of the response as a string 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
// Follow redirects 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
// Set up authentication 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($ch, CURLOPT_USERPWD, "$token:X"); 

// Do the request 
$response = curl_exec($ch); 
curl_close($ch); 

print($response); 
?> 

다음과 같습니다이 API를 사용하여 우리에게 PHP 코드를 제공합니다. 그러나 401 (Unauthorized code)을 받았습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

string apiToken = "#{myAPIToken}"; 

string url = "https://bibles.org/v2/verses/eng-GNTD:Acts.8.34.xml"; 
WebRequest myReq = WebRequest.Create(url); 
CredentialCache mycache = new CredentialCache(); 
myReq.Headers["Authorization"] = Convert.ToBase64String(Encoding.ASCII.GetBytes(apiToken + ":X")); 
WebResponse wr = myReq.GetResponse(); 
Stream receiveStream = wr.GetResponseStream(); 
StreamReader reader = new StreamReader(receiveStream, Encoding.UTF8); 
string content = reader.ReadToEnd(); 

답변

0

인증 헤더 부분에 Basic 부분이 누락되어 있다고 생각합니다.

myReq.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(apiToken + ":X")); 
: 이것은 내가 그것을에서하는 방법 예에서 .NET 4.6

var client = new HttpClient() 
var auth = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{accountSid}:{token}")); 

client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", auth); 

이 시도입니다

관련 문제