Boa tarde.
Galera é o seguinte.
Preciso consumir um web service e segundo a documentação do mesmo, faz uso do curl.
A documentação vem alguns exemplos de consumo, porém em php.
O sistema que eu uso é todo desenvolvido em Asp.NET com C#.
Procurando na net, encontrei a libcurl.Net que “traduz” os comandos em php para C#.
Segue exemplo em php para consumo segundo a documentação:
$api_server = ‘http://’;
$api_http_user = ‘string_user’;
$api_http_pass = ‘string_pass’;
$chave_acesso = ‘access_key’;
$chave_name = ‘api_key’;
$format = ‘json’;
$params = array(
‘MatriculaID’ => “”,
‘CursoID’ => “”,
‘DisciplinaID’ => “”
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, “{$api_server}/format/{$format}”);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($curl, CURLOPT_USERPWD, “{$api_http_user}:{$api_http_pass}”);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("{$chave_name}:{$chave_acesso}"));
curl_setopt($curl, CURLOPT_NOBODY, 1);
curl_exec($curl);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
$output = curl_exec($curl);
print_r($output); // Resposta do WebService
die;
Eu transcrevi utilizando a libcurl.net e minha classe ficou assim:
public class IesdeApi {
public string Notas() {
string api_server = “http://”;
string api_http_user = “string_user”;
string api_http_pass = “string_pass”;
string chave_acesso = “access_key”;
string chave_name = “access_key”;
string format = “json”;
string[] par = { “MatriculaID”, “CursoID”, “DisciplinaID” };
par[0] = “”;
par[1] = “”;
par[2] = “”;
Curl.GlobalInit((int)CURLinitFlag.CURL_GLOBAL_ALL);
Easy easy = new Easy();
easy.SetOpt(CURLoption.CURLOPT_URL, "{" + api_server + "}/format/{" + format + "}");
easy.SetOpt(CURLoption.CURLOPT_USERPWD, "{" + api_http_user + "}:{" + api_http_pass + "}");
easy.SetOpt(CURLoption.CURLOPT_HTTPHEADER, "{" + chave_name + "}:{" + chave_acesso + "}");
easy.SetOpt(CURLoption.CURLOPT_NOBODY, 1);
easy.SetOpt(CURLoption.CURLOPT_HEADER, 0);
easy.SetOpt(CURLoption.CURLOPT_POST, 1);
easy.SetOpt(CURLoption.CURLOPT_POSTFIELDS, par);
easy.SetOpt(CURLoption.CURLOPT_SSL_VERIFYPEER, 0);
easy.Perform();
easy.Cleanup();
Curl.GlobalCleanup();
return easy.toString();
}
};
Se alguém puder ajudar onde estou errando e o que está faltando, fico agradecido.
Ou puder indicar algum tutorial ou manual oficial.
Já revirei google e bing e cheguei nisso ai, mas parece que está faltando alguma coisa.
Como saída estou jogando a “resposta” numa label.