2010-05-17 104 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