将文件发送到API - C#

时间:2010-05-17 16:10:21

标签: c# api

我正在尝试使用发送传真的API。

我有一个PHP示例如下: (我将使用C#)

<?php
//This is example code to send a FAX from the command line using the Simwood API
//It is illustrative only and should not be used without the addition of error checking etc.

$ch = curl_init("http://url-to-api-endpoint");
$fax_variables=array(
'user'=> 'test',
'password'=> 'test',
'sendat' => '2050-01-01 01:00',
'priority'=> 10,
'output'=> 'json',
'to[0]' => '44123456789',
'to[1]' => '44123456780',
'file[0]'=>'@/tmp/myfirstfile.pdf',
'file[1]' => '@/tmp/mysecondfile.pdf'
); 
print_r($fax_variables);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $fax_variables); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec ($ch);
$info = curl_getinfo($ch);
$result['http_code'];
curl_close ($ch);
print_r($result);

?>

我的问题是 - 在C#世界中,我将如何获得相同的结果?

我是否需要建立一个帖子请求?

理想情况下,我尝试使用REST执行此操作 - 并构建URL,并使用HttpWebRequest(GET)来调用API

3 个答案:

答案 0 :(得分:1)

无论何时发送数据,都应该使用POST。这与所涉及的技术无关。 REST的思想支持所有标准的http方法(POST,GET,PUT,DELETE)。

请参阅this wiki entry


更新:了解更多信息

有很多不同的选择。正如您所描述的,一种方法是使用HttpWebRequest对象来制作请求并发送它。以下是使用该方法发布数据的示例(link),另一个是here

另一种方法是使用WCF。 Microsoft有一些关于here的文档。 O'Reilly有一本关于它的书here

答案 1 :(得分:0)

我通过使用所需的命令行参数调用Curl utility来与C#中的HTTP / S URL进行交互。有关更多指导,请参阅this SO answer。 Curl是专为此类需求而构建的,经过验证且真实,可用于命令行和批处理文件以测试URL和Post字段。让Curl做最好的事情,并为您的业务逻辑留下C#代码。

答案 2 :(得分:0)

基于已发布的specs,HttpWebRequest对象是您应该使用C#与Simwood api进行通信的对象。