2010-05-17 65 views
3

我正在尝试使用发送传真的API。发送文件到API - C#

我有以下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,你要发送的数据,你应该使用POST

回答

1

任何时候。这与所涉及的技术无关。所有标准的http方法(POST,GET,PUT,DELETE)都受到REST思想的支持。

请参阅this wiki entry


UPDATE:欲了解更多信息

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

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

+0

好的谢谢,那么我应该如何在C#中做到这一点? – Alex 2010-05-17 16:51:53

0

我一直在使用C#中的HTTP/S URL与所需的命令行参数调用Curl utility进行交互。有关更多指导,请参阅this SO answer。 Curl是专门为此类需求构建的,已经过尝试,并且可以从命令行和批处理文件中使用,以测试URL和Post字段。让Curl尽其所能,并为您的业务逻辑留下C#代码。

0

根据已发布的specs,HttpWebRequest对象是您应该用来使用C#与Simwood API进行通信的对象。

+0

是的,但我的问题是如何发送实际的文件simwood api? – Alex 2010-07-01 13:04:38