Хит внешний URL из кода позади - PullRequest
3 голосов
/ 08 июня 2010

У меня есть форма на моем сайте.Пользователь вводит свою электронную почту и выбирает местоположение из выпадающего списка.Затем мне нужно опубликовать эти данные на внешнем сайте, нажав URL-адрес с указанием местоположения пользователя и адрес электронной почты в строке запроса.

Я делаю это так:* Мой клиент говорит, что я не бью их сервер, но при прохождении через отладчик я получаю ответ от их сервера.Я также попытался отследить, что происходит с помощью Firebug, и заметил, что для этого внешнего сайта не было выполнено POST.

Что я здесь не так делаю?

Ответы [ 4 ]

5 голосов
/ 09 августа 2012
    string line;
    HttpWebRequest request = WebRequest.Create("http://www.yahoo.com") as HttpWebRequest;
    HttpWebResponse response = request.GetResponse() as HttpWebResponse;
    StreamReader streamr = new StreamReader(response.GetResponseStream());
    line = streamr.ReadToEnd();

Можете ли вы добраться до моей записи, которую я написал по всему

3 голосов
/ 08 июня 2010

Убедитесь, что вы делаете POST, а не метод GET. Это некоторый похожий код, который я использовал в прошлом.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);        
                request.KeepAlive = false;
                request.ProtocolVersion = HttpVersion.Version10;
                request.Method = "POST";
                request.Timeout = 30000;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
2 голосов
/ 08 июня 2010

Проверьте, что Method вы используете для WebRequest.Я предполагаю, что по умолчанию GET, а не POST.

Вы можете легко установить его самостоятельно:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
1 голос
/ 08 июня 2010

Из кода, который я вижу здесь, я бы сказал, что ваш клиент не прав, вы попали на его сервер (предполагая, что site.com является их сервером, и у вас есть работающее интернет-соединение :).Однако, если вам нужно сделать POST вместо GET для отправки данных, возможно, что-то вроде следующего:

string url = "http://www.site.com/page.aspx";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

// set request properties
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";

// set post values
string postValues = "location=" + location.Text + "&email=" + email.Text;
request.ContentLength = postValues.Length;

// write post values
StreamWriter streamWriter = new StreamWriter (request.GetRequestStream(), System.Text.Encoding.ASCII);
streamWriter.Write(postValues);
streamWriter.Close();

// process response
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader streamReader = new StreamReader(response.GetResponseStream());
string responseData = streamReader.ReadToEnd();
streamReader.Close();

// do any processing needed on responseData...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...