POST - запрос возвращает одну и ту же строку ответа, в независимости от параметров - C#

Узнай цену своей работы

Формулировка задачи:

project1.zip Ключ поиска берется из буфера обмена. Есть сайт с возможностью поиска. Почему-то программно поиск не осуществляется (все время возвращается заглавная страница поиска).

Решение задачи: «POST - запрос возвращает одну и ту же строку ответа, в независимости от параметров»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using System.Net;
  11. using System.IO;
  12. using System.Web;
  13.  
  14. namespace BylinsStuff
  15. {
  16.     public partial class Form1 : Form
  17.     {
  18.         //адрес главной страницы сайта для запроса
  19.         static string MainPageAddress = @"http://www.mudportal.ru/objects";
  20.         //содержимое буфера обмена
  21.         static string ClipboardString = string.Empty;
  22.  
  23.  
  24.  
  25.         //лог
  26.         static void Log(string s)
  27.         {
  28.             /*try
  29.             {
  30.                 System.IO.File.AppendAllText(FileNameLog, DateTime.Now.ToString(@"dd.MM.yyyy HH:mm:ss ") + s + System.Environment.NewLine);
  31.             }
  32.             catch (Exception ex)
  33.             {
  34.                 Console.WriteLine(@"Ошибка при записи файла лога " + FileNameLog + @": " + ex.Message);
  35.             }
  36.             //Console.WriteLine(s);
  37.             //Console.Read();*/
  38.             MessageBox.Show(s);
  39.         }
  40.  
  41.  
  42.  
  43.         //возвращает html-код страницы
  44.         static string GetHTML(string url, string data)
  45.         {
  46.             try
  47.             {
  48.                 string CodePage = @"utf-8";
  49.                 //Byte[] byteArray = Encoding.ASCII.GetBytes(@"name=" + System.Web.HttpUtility.UrlEncode(data));
  50.                 Byte[] byteArray = Encoding.ASCII.GetBytes(@"name=" + data);
  51.                 HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
  52.                 req.Method = @"POST";
  53.                 req.Credentials = CredentialCache.DefaultCredentials;
  54.                 req.Timeout = 10000;
  55.                 req.ContentType = @"application/x-www-form-urlencoded";
  56.                 req.ContentLength = byteArray.Length;
  57.                 Stream reqStream = req.GetRequestStream();
  58.                 reqStream.Write(byteArray, 0, byteArray.Length);
  59.                 reqStream.Close();
  60.                 HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
  61.                 if (resp.StatusCode == HttpStatusCode.OK)
  62.                 {
  63.                     StreamReader sr = new StreamReader(resp.GetResponseStream(), System.Text.Encoding.GetEncoding(CodePage));
  64.                     string content = sr.ReadToEnd();
  65.                     sr.Close();
  66.                     resp.Close();
  67.                     return content;
  68.                 }
  69.                 else
  70.                 {
  71.                     return string.Empty;
  72.                 }
  73.             }
  74.             catch (Exception ex)
  75.             {
  76.                 Log(@"ошибка: " + ex.Message);
  77.                 return string.Empty;
  78.             }
  79.         }
  80.  
  81.  
  82.  
  83.         //делает запрос к оналйн-базе вещей и выводит его результат
  84.         static void MakeRequest(TextBox t)
  85.         {
  86.             string newClipboardString = Clipboard.GetText();
  87.             if (newClipboardString != ClipboardString)
  88.             {
  89.                 ClipboardString = newClipboardString;
  90.                 if (ClipboardString != string.Empty)
  91.                 {
  92.                     t.Text = GetHTML(MainPageAddress, ClipboardString);
  93.                 }
  94.                 //MessageBox.Show(ClipboardString);
  95.             }
  96.         }
  97.  
  98.  
  99.  
  100.         public Form1()
  101.         {
  102.             InitializeComponent();
  103.             Form1_Resize(null, null);
  104.         }
  105.  
  106.  
  107.  
  108.         //изменение размера элементов управления при изменении размеров формы
  109.         private void Form1_Resize(object sender, EventArgs e)
  110.         {
  111.             textBox1.Left = 0;
  112.             textBox1.Top = 0;
  113.             textBox1.Width = Width;
  114.             textBox1.Height = Height;
  115.         }
  116.  
  117.  
  118.  
  119.         //таймер
  120.         private void timer1_Tick(object sender, EventArgs e)
  121.         {
  122.             MakeRequest(textBox1);
  123.         }
  124.  
  125.     }
  126. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут