Мне нужно сделать сообщение для автоматизации генератора документов.Существует форма со многими полями, затем пользователь заполняет и загружает PDF-документ.С расширением Firefox HTTP Header Live я получил содержание Post:
http://licenciamento.detran.ma.gov.br/Formularios/consulta/ProcuracaoPF.xhtml
Host: licenciamento.detran.ma.gov.br
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pt-BR,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://licenciamento.detran.ma.gov.br/Formularios/consulta/ProcuracaoPF.xhtml
Content-Type: multipart/form-data; boundary=---------------------------191411188326270
Content-Length: 5675
Cookie: JSESSIONID=3B4086C929E8460DA8DA3FBA28F52601; _ga=GA1.4.468626876.1543266161; _gid=GA1.4.298515823.1543266161; ROUTEID=.6
Connection: keep-alive
Upgrade-Insecure-Requests: 1
j_idt38=j_idt38&ListaItens=&j_idt38:j_idt43_input=&j_idt38:j_idt45=1&j_idt38:j_idt47=2&j_idt38:j_idt49=3&j_idt38:j_idt51=4&j_idt38:j_idt53=5&j_idt38:j_idt55=6&j_idt38:j_idt57=7&j_idt38:j_idt59=8&j_idt38:j_idt61=9&j_idt38:j_idt63=10&j_idt38:j_idt65=11&j_idt38:j_idt67=12&j_idt38:j_idt69=13&j_idt38:j_idt71=14&j_idt38:j_idt73=15&j_idt38:j_idt75=16&j_idt38:j_idt77=17&j_idt38:j_idt79=18&j_idt38:j_idt81=19&j_idt38:j_idt83=20&j_idt38:j_idt85=21&j_idt38:j_idt87=22&j_idt38:j_idt89=23&j_idt38:j_idt91=24&j_idt38:j_idt93=25&j_idt38:j_idt95=26&j_idt38:j_idt97=27&j_idt38:j_idt99=28&j_idt38:j_idt101=29&j_idt38:j_idt103=30&j_idt38:j_idt105=31&j_idt38:j_idt107=32&j_idt38:j_idt109=33&j_idt38:j_idt111=34&j_idt38:j_idt113=35&j_idt38:j_idt115=36&j_idt38:j_idt117=37&j_idt38:j_idt119=38&j_idt38:j_idt121=39&j_idt38:j_idt123=40&j_idt38:j_idt125=41&j_idt38:j_idt127=42&j_idt38:j_idt129=43&j_idt38:j_idt131=44&j_idt38:drpUf_focus=&j_idt38:drpUf_input=ACAILANDIA&j_idt38:btnGeraDocumento=&javax.faces.ViewState=7850272665638996942:-3126694755474067047
POST: HTTP/1.1 200 OK
Date: Mon, 26 Nov 2018 21:05:50 GMT
Content-Type: text/html;charset=UTF-8
Connection: close
Transfer-Encoding: chunked
Итак, я придумал тест на c # с GET, чтобы получить куки, и POST, чтобы получить нужный документ, код ниже:
var values = new Dictionary<string, string>
{
{"j_idt38", "j_idt38"},
{"ListaItens", string.Empty},
{"j_idt38:j_idt43_input", string.Empty},
{"j_idt38:j_idt45", "1"},
{"j_idt38:j_idt47", "2"},
{"j_idt38:j_idt49", "3"},
{"j_idt38:j_idt51", "4"},
{"j_idt38:j_idt53", "5"},
{"j_idt38:j_idt55", "6"},
{"j_idt38:j_idt57", "7"},
{"j_idt38:j_idt59", "8"},
{"j_idt38:j_idt61", "9"},
{"j_idt38:j_idt63", "10"},
{"j_idt38:j_idt65", "11"},
{"j_idt38:j_idt67", "12"},
{"j_idt38:j_idt69", "13"},
{"j_idt38:j_idt71", "14"},
{"j_idt38:j_idt73", "15"},
{"j_idt38:j_idt75", "16"},
{"j_idt38:j_idt77", "17"},
{"j_idt38:j_idt79", "18"},
{"j_idt38:j_idt81", "19"},
{"j_idt38:j_idt83", "20"},
{"j_idt38:j_idt85", "21"},
{"j_idt38:j_idt87", "22"},
{"j_idt38:j_idt89", "23"},
{"j_idt38:j_idt91", "24"},
{"j_idt38:j_idt93", "25"},
{"j_idt38:j_idt95", "26"},
{"j_idt38:j_idt97", "27"},
{"j_idt38:j_idt99", "28"},
{"j_idt38:j_idt101", "29"},
{"j_idt38:j_idt103", "30"},
{"j_idt38:j_idt105", "31"},
{"j_idt38:j_idt107", "32"},
{"j_idt38:j_idt109", "33"},
{"j_idt38:j_idt111", "34"},
{"j_idt38:j_idt113", "35"},
{"j_idt38:j_idt115", "36"},
{"j_idt38:j_idt117", "37"},
{"j_idt38:j_idt119", "38"},
{"j_idt38:j_idt121", "39"},
{"j_idt38:j_idt123", "40"},
{"j_idt38:j_idt125", "41"},
{"j_idt38:j_idt127", "42"},
{"j_idt38:j_idt129", "43"},
{"j_idt38:j_idt131", "44"},
{"j_idt38:drpUf_focus", string.Empty},
{"j_idt38:drpUf_input", "ACAILANDIA"},
{"j_idt38:btnGeraDocumento", string.Empty},
{"javax.faces.ViewState", "7850272665638996942:-3126694755474067047"}
};
var baseAddress =
new Uri("http://licenciamento.detran.ma.gov.br/Formularios/consulta/ProcuracaoPF.xhtml");
var cookieContainer = new CookieContainer();
using (var handler = new HttpClientHandler() { CookieContainer = cookieContainer })
using (var client = new HttpClient(handler) {BaseAddress = baseAddress})
{
var getContent = await client.GetAsync(baseAddress);
var getString = await client.GetStringAsync(baseAddress);
var cookies = cookieContainer.GetCookies(baseAddress).Cast<Cookie>().ToList();
var content = new FormUrlEncodedContent(values);
var postContent = content.ReadAsStringAsync();
var response = await client.PostAsync(baseAddress, content);
var responseString = await response.Content.ReadAsStringAsync();
}
}
responseString из POST возвращает ошибку HTTP Status 500.Я обнаружил «javax.faces.ViewState = 7850272665638996942: -312669475547406704» из содержимого публикации, которое я не знаю, что это такое и как его заполнить.
Чего мне не хватает?
Спасибо за любую помощь!