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();