Интеграция 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