作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 c# 程序在向在线电话系统发送或接收 cURL 请求时遇到问题,我希望能在那里得到一些帮助:)
我想发送这样的命令:
curl https://api.placetel.de/api/test \
-d 'api_key=XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX'
服务器返回 XML
<?xml version="1.0" encoding="UTF-8"?>
<hash>
<result>1</result>
<result-code>success</result-code>
<descr>test login successful v1.1</descr>
</hash>
我试过 WebRequest Class (msdn) 但我没有连接。
“System.dll 中的错误 System.Net.WebException” 连接服务器失败
WebRequest request = WebRequest.Create("https://api.placetel.de/");
request.Method = "POST";
string postData = "-d 'api_key=XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX'";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "/api/test.xml";
有一个 API documentation来自电话在线系统提供商,但仅限德语。
问候
最佳答案
我更喜欢使用 WebClient
WebClient wc = new WebClient();
var buf = wc.UploadValues("https://api.placetel.de/api/test",
new NameValueCollection() { { "api_key", "XXXX" } });
var xml = Encoding.UTF8.GetString(buf);
或HttpClient
HttpClient client = new HttpClient();
var content = new FormUrlEncodedContent(new Dictionary<string, string>() {
{ "api_key", "XXXX" }
});
var resp = await client.PostAsync("https://api.placetel.de/api/test",content);
var xml = await resp.Content.ReadAsStringAsync();
其中的方法更易于使用。
顺便说一句,-d(或--data)
是curl的一个参数,它不会发送到服务器
PS:您可能还想阅读有关 ContentType
的内容 http://www.freeformatter.com/mime-types-list.html
关于c# - 如何在 C# 中发送/接收 cURL/API 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31557692/
我是一名优秀的程序员,十分优秀!