2015-11-25 4 views
0

Удивите, если кто-то может мне помочь, пожалуйста, я пытаюсь отправить данные с одного сайта на другой: так на моем «отправляющем» сайте у меня есть страница, которая запускает следующий:Отправить и получить данные «Отправить»

string message; 
    message = "DATA DATA DATA DATA!!!"; 

    System.Net.WebRequest request = WebRequest.Create("http://clt-umbraco.test.clt.co.uk/storereceive/?data-response"); 

    request.ContentType = "application/json"; 
    request.Method = "POST"; 
    request.Headers["X-Parse-Application-Id"] = "aaaaaaaaaaaaaaa"; 
    request.Headers["X-Parse-REST-API-Key"] = "bbbbbbbbbbbbbbb"; 
    byte[] buffer = Encoding.GetEncoding("UTF-8").GetBytes("{\"channels\": [\"\"], \"data\": { \"alert\": \" " + message + "\" } }"); 
    string result = System.Convert.ToBase64String(buffer); 
    Stream reqstr = request.GetRequestStream(); 
    reqstr.Write(buffer, 0, buffer.Length); 
    reqstr.Close(); 

    WebResponse response = request.GetResponse(); 
    //jsonString.Text = response; 
    reqstr = response.GetResponseStream(); 
    StreamReader reader = new StreamReader(reqstr); 
    jsonString.Text = reader.ReadToEnd(); 

И на моей приемном сайте/странице у меня есть следующие загрузки страницы:

string[] keys = Request.Form.AllKeys; 
    for (int i = 0; i < keys.Length; i++) 
    { 
     Response.Write(keys[i] + ": " + Request.Form[keys[i]] + "<br>"); 
    } 

Я могу видеть, что это событие загрузки страницы стреляет, но возражает Request.Form.Allkeys является пусто, где я надеюсь, что он будет содержать данные со страницы отправки. Очевидно, я куда-то буду ошибаться ... может кто-нибудь помочь, пожалуйста?

Спасибо, Craig

+0

вы уверены, что запрос обрабатывается успешно? что возвращает 'reader.ReadToEnd()'? –

+0

reader.ReadToEnd() получает HTML-адрес страницы получения. Таким образом, запрос обрабатывается, на принимающую страницу просто нет данных. – SxChoc

ответ

0

Это потому, что Вы не отправляя форму, вы загружаете исходные данные.

request.ContentType = "application/x-www-form-urlencoded";

И населяющие ваши почтовые данные, как например:

Key1=value1&key2=value2 

Вы должны также рассмотреть вопрос о кодировании значений с HttpServerUtility.UrlEncode

Если вы до сих пор wan't отправить сырые данные, хотя, то на сервере конец, вы должны прочитать входящие данные, такие как: (вместо Request.Form[])

byte[] requestRawData = Request.BinaryRead(Request.ContentLength); 
+0

Изменение типа контента, поскольку вы предлагаете работать (спасибо!), Поэтому, очевидно, я неправильно читал входящие «данные». Есть ли способ получить входящие необработанные данные? – SxChoc

+0

Отредактировал свой ответ. –

+0

Cheers mucka, я дам, что вихрь – SxChoc

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