Интеграция RingCentral FaxOut API с использованием C#

Привет, как ты? Я пытаюсь использовать FaxOut API:

http://service.ringcentral.com/faxoutapi/

Вот и вся документация по API. В основном мне нужно отправить HTTP POST с некоторыми данными.

Это мой код, но мне не удается заставить его работать, скажите, пожалуйста, есть ли что-то, чего я не вижу.

string URLAuth = "https://service.ringcentral.com/faxapi.asp";
WebClient webClient = new WebClient();
var formData = new NameValueCollection();
formData["Username"] = "2487955151";
formData["Password"] = "mypassword";
formData["Recipient"] = "12485974888";
formData["Coverpagetext"] = "Some random text";
formData["Resolution"] = "High";
byte[] responseBytes = webClient.UploadValues(URLAuth, "POST", formData);
string resultAuthTicket = Encoding.UTF8.GetString(responseBytes);
webClient.Dispose();

return resultAuthTicket;

Большое спасибо!

3 ответа

Я интегрировал сервис Popfax, который также предоставляет факсимильные API http://www.popfax.com/index.php?pop=corporate&corp=free_api Он отлично работает с нашим приложением. Я уверен, что это будет с вашим программным обеспечением тоже. Единственное условие - иметь четкий код.

Ваш код, вероятно, не работает, потому что WebClient.UploadValues() скорее всего, создание и отправка запроса с типом контента установлен application/x-www-form-urlencoded в то время как API требует multipart/form-data, multipart/form-data это популярный тип контента при отправке файлов.

Вот некоторый рабочий код C#, который использует System.Net.Http (а также System.IOотправлять multipart/form-data запрос.

string url = "https://service.ringcentral.com/faxapi.asp";

var data = new MultipartFormDataContent();
data.Add(new StringContent("16501112222"), "username");
data.Add(new StringContent("mypassword"), "password");
data.Add(new StringContent("16501113333"), "recipient");
data.Add(new StringContent("RingCentral FaxOut API using C#"), "coverpagetext");
data.Add(new ByteArrayContent(File.ReadAllBytes("C:\\path\\to\\test.pdf", "attachment", "test.pdf");

var client = new HttpClient();
var response = client.PostAsync(new Uri(url), data).Result;
if (response.IsSuccessStatusCode)
{
    var responseContent = response.Content;
    var responseString = responseContent.ReadAsStringAsync().Result;
    Console.WriteLine(responseString);
}

Вы также можете использовать более широкий API-интерфейс платформы RingCentral, который охватывает факс и многое другое.

Использование ncToolControls ASP.NET

.aspx:

<%@ Register Assembly="ncToolControls" Namespace="ncToolControls" TagPrefix="nc" %>

<nc:FaxService ID="fsCtrl" AddCloseButton="true" CssClass="mobilestyle_input" Width="620px" runat="server" />  
<p align="center"><asp:Literal ID="lit_Message" runat="server"></asp:Literal></p>              

Codebehind.cs

protected void Page_Init(object sender, EventArgs e)
{
    this.fsCtrl.btnCloseFax.Click += new EventHandler(btnCloseFaxScreen_Click);
}
protected void Page_Load(object sender, EventArgs e)
{

    this.fsCtrl.eFaxServer_Name = "rcfax.com";
    this.fsCtrl.Host_Server_Name = "smtp.domain.com";
    this.fsCtrl.Assiged_Email = "Authenticated Email Goes Here";
    this.fsCtrl.AssigedEmail_Password = "Password Goes Here";        
    this.fsCtrl.HostServer_PortNumber = 25;
    this.fsCtrl.HostServerRequireAuthentication = false;
    this.fsCtrl.HostServerRequireSSL = false;
    this.fsCtrl.HostServerRequiresInternationalDigit = false;
    this.fsCtrl.Company_FaxNumber = "12125555555";
    this.fsCtrl.FaxOut_FolderPath = "~/faxout/";  //- Folder must be valid path in Virtual Directory


    if (!Page.IsPostBack)
    {

    }
    btnSave_Click(sender, e);                
}

Загрузите Образец и Контроль здесь http://www.netstair.net/download/RingCentral-Fax.zip

Другие вопросы по тегам