2014-02-15 3 views
1

Я новичок в C#. Я хочу отправить сообщение из настольного приложения с помощью C#, потому что я купил API от мобильной компании (Telenor). По их документам сначала я должен получить идентификатор аутентификации, отправив запрос на этот URL (https://telenorcsms.com.pk:27677/corporate_sms2/api/auth.jsp?msisdn=xxxx&password=xxx), и это дает мне ответ в формате XML, как это:webresponse от стороннего участника, используя их API, C#

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

Теперь мне нужен идентификатор сеанса, который находится в <data> узла, для дальнейшего использования для отправки сообщения типа (https://telenorcsms.com.pk:27677/corporate_sms2/api/sendsms.jsp?session_id=xxxx&to=923xxxxxxxxx,923xxxxxxxxx,923xxxxxxxxx&text=xxxx&mask=xxxx).

Я пробовал много методов, чтобы вывести идентификатор сеанса и использовать его, но понятия не имею, как это сделать. его мой код:

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 имеет ответ, от я хочу получить идентификатор –

+0

Пожалуйста, не публикуйте код в комментариях (выглядит ugly & people не всегда читают все комментарии), просто отредактируйте свой вопрос и добавьте его там. – t0mppa

ответ

1

Вы можете использовать Linq to Xml

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

thanx alot sir ... это сработало –

+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); 

 Смежные вопросы

  • Нет связанных вопросов^_^