2014-02-15 31 views
1

我是C#的新手。我想使用C#從桌面應用程序發送消息,因爲我從移動公司(Telenor)購買了API。根據他們的證件,我首先必須通過發送請求到該URL(https://telenorcsms.com.pk:27677/corporate_sms2/api/auth.jsp?msisdn=xxxx&password=xxx)獲得認證標識,這讓我在XML格式的響應是這樣的:來自第三方的web響應,使用他們給定的API,C#

<?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(); 
+0

您需要幫助解析XML?向我們展示您迄今爲止所嘗試的內容,我們將能夠爲您指出正確的方向。 – t0mppa

+0

字符串s有反應,從我想要得到的ID –

+0

請不要在評論中發佈代碼(看起來醜陋&人們並不總是閱讀所有評論),只需編輯您的問題,並將其添加到那裏。 – t0mppa

回答

1

您可以使用Linq to Xml

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

thanx很多先生...它的工作 –

+0

@LuqmanTariq看到這個:[如何接受一個答案的工作?](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work ) –

0

首先將文件保存到了一些路徑,然後使用此代碼來獲取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); 
    } 

}

0
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); 
相關問題