Доступ к заголовкам запросов / ответов C # - PullRequest
0 голосов
/ 28 мая 2018

В настоящее время я пытаюсь получить доступ к заголовкам запросов / ответов с помощью C #, а также получить доступ к телу запросов / ответов с веб-сайта, который имеет имя пользователя / пароль.Я считаю, что дошел до точки входа в систему, в основном это просто доступ к данным.

Итак, сначала я открываю HttpWebRequest на странице входа и отправляю свои учетные данные.Затем я создаю webclient с прокси-сервером для входа на удаленный сервер и также предоставляю ему учетные данные.Затем я попытался загрузить данные, однако все, что я получаю, это тело ответа, но мне нужно тело запроса и заголовок запроса с сервера

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.IO;
using System.Web;
using System.Collections.Specialized;
using System.Runtime.InteropServices;
using System.Data.OleDb;
namespace ScrapeTest
 {
    class Program{

        static void Main(string[] args){
            HttpWebRequest baseRequest = WebRequest.Create("remoteserver") as HttpWebRequest;
            baseRequest.Timeout = 50000;
            baseRequest.MaximumAutomaticRedirections = 7;
            baseRequest.Credentials = new NetworkCredential("username", "password");
            HttpWebResponse baseResponse = baseRequest.GetResponse() as HttpWebResponse;
            WebClient client = new WebClient();
            WebProxy proxy = new WebProxy("proxyServer",true);
            proxy.Credentials = new NetworkCredential("proxyUsername", "proxyPassword");
            proxy.UseDefaultCredentials = true;
            WebRequest.DefaultWebProxy = proxy;
            client.Proxy = proxy;
            string head = client.Headers.ToString();
            NameValueCollection data = new NameValueCollection();
            byte[] res = client.UploadValues("otherPage", "GET", data);
            string resString = System.Text.Encoding.UTF8.GetString(res);
            Console.WriteLine(resString);
            byte[] info = client.DownloadData("otherPage");
            string responseString = System.Text.Encoding.UTF8.GetString(info);
            Console.WriteLine(responseString);
            client.Dispose();
            baseResponse.Close();
            Console.ReadLine();
            }
        }
    }

1 Ответ

0 голосов
/ 28 мая 2018

Если вы создаете форму в C #, я полагаю, или это может быть проще, если вы используете ASP.NET.

Вот простой пример из другой SO о том, как получить доступ к данным формы:

NameValueCollection nvc = Request.Form;
string userName, password;
if (!string.IsNullOrEmpty(nvc["txtUserName"]))
{
  userName = nvc["txtUserName"];
}

if (!string.IsNullOrEmpty(nvc["txtPassword"]))
{
  password = nvc["txtPassword"];
}

Вот еще информация от Microsoft о классе Form: https://msdn.microsoft.com/en-us/library/system.web.httprequest.form(v=vs.110).aspx

Однако, если вы предоставите более подробную информацию, мы сможем дать вам лучший ответ.

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