簡體   English   中英

來自第三方的網絡響應,使用其給定的API,C#

[英]webresponse from 3rd party, using their given API, C#

我是C#的新手。 我想使用C#從桌面應用程序發送消息,為此我從移動公司(Telenor)購買了API。 首先根據他們的文檔,我必須通過向該URL發送請求來獲取身份驗證ID( https://telenorcsms.com.pk:27677/corporate_sms2/api/auth.jsp?msisdn=xxxx&password=xxx ),它會給我XML格式的響應如下:

<?xml version="1.0" encoding="UTF-8" ?>
<corpsms>
  <command>Auth_request</command>
  <data>Session ID</data>
  <response>OK</response>
</corpsms>

現在,我需要位於<data>節點中的會話ID,以便進一步用於發送消息,例如( https://telenorcsms.com.pk:27677/corporate_sms2/api/sendsms.jsp?session_id=xxxx&to=923xxxxxxxxx,923xxxxxxxxx, 923xxxxxxxxx&text = xxxx&mask = xxxx )。

我嘗試了許多方法來獲取會話ID並使用它,但不知道如何執行。 它是我的代碼:

WebClient client = new WebClient ();
client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
Stream data = client.OpenRead ("https://telenorcsms.com.pk:27677/corporate_sms2/api/auth.jsp?msisdn=xxxx&password=xxx");
StreamReader reader = new StreamReader (data);
StreamReader objreadr = new StreamReader(data);
string s = reader.ReadToEnd();

您可以使用Linq到Xml

var sessionid = XDocument.Parse(s).Descendants("data").First().Value;

首先將文件保存到某個路徑,然后使用此代碼在xml中獲取所需的節點。

public void Load()
{
    FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
    XmlDocument xmldoc = new XmlDocument();
    XmlNodeList xmlnode;

   xmldoc.Load(fs);
   xmlnode = xmldoc.GetElementsByTagName("corpsms");

   for (int i = 0; i < xmlnode.Count; i++)
   {
       string str = string.Format("ID: {0}\r\nName:{0}", xmlnode[i].ChildNodes.Item(0).InnerText, xmlnode[i].ChildNodes.Item(1).InnerText);//Your Data will exist at node 1
       MessageBox.Show(str);
   }

}

  var url = @"https://example.com/api/auth.jsp";
            var nvc = new NameValueCollection();
            nvc.Add("msisdn", "xxxxxxxxxxxx");
            nvc.Add("password", "xxxx");
            var client = new System.Net.WebClient();
            var data = client.UploadValues(url, nvc);
            var res = System.Text.Encoding.ASCII.GetString(data);
            string GetResponse = res.ToString();
            string sessionid = XDocument.Parse(res).Descendants("data").First().Value;
            url = @"https://telenorcsms.com.pk:27677/corporate_sms2/api/sendsms.jsp";
            nvc = new NameValueCollection();
            nvc.Add("msisdn", "xxxxxxxxx");
            nvc.Add("session_id",sessionid);
            nvc.Add("to", textBox1.Text);
            nvc.Add("text",textBox2.Text);
             data = client.UploadValues(url, nvc);
             res = System.Text.Encoding.ASCII.GetString(data);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM