간단한 작업으로 연구 현장을 단순화하기 위해 PHP 사이트를 약간 긁어 모으기 위해 노력하고 있습니다. 이 페이지는 3 개의 필드와 제출 버튼이있는 간단한 양식을 가지고 있습니다.C# HTTPClient 폼 게시 및 전송 문제
코드를 실행하면 아무 것도 제출하지 않은 것처럼 원본 페이지가 반환됩니다. 나는 또한 필드에 붙여 넣으려고했는데? name = etc ... php url 후에도 나에게 제출 버튼을 누르지 않은 것처럼 원본 페이지로 돌아옵니다.
private async void postRequest(string url)
{
using (HttpClient client = new HttpClient())
{
var values = new List<KeyValuePair<string, string>>();
values.Add(new KeyValuePair<string, string>("case_type", "55"));
values.Add(new KeyValuePair<string, string>("petname", "singh"));
values.Add(new KeyValuePair<string, string>("year", "2016"));
values.Add(new KeyValuePair<string, string>("button", "Submit"));
var content = new FormUrlEncodedContent(values);
var response = await client.PostAsync(url, content);
var responseString = await response.Content.ReadAsStringAsync();
using (StreamWriter post = new StreamWriter("post_website.txt"))
{
post.WriteLine(responseString);
}
}
}
Chrome Dev Tools screenshot after submit :
여기에 내 현재 코드입니다. 나는 URL의 일부를 수정했는데, 공개 정보 사이트이지만, 경우에 따라서는 안전합니다.
나는 기본적으로 C#을 배웠으므로 뭔가 잘못하고 있다고 가정합니다. 그리고 이것은 C#과 관련된 모든 웹 작업을 시도한 첫 시간입니다.
StackOverflow에서 비슷한 문제가 발생했습니다 : Fill Form C# & Post Error이 코드는 작동하지 않으며 쿠키가 필요 없다고 생각합니다. 서버에 HttpClient 및 WebClient POST 요청을 사용하는 것과 관련하여 다양한 다른 StackOverflow 응답을 시도했지만 아무도 작동하지 않았습니다.
미리 제안 해 주시고 의견을 보내 주셔서 감사합니다.
올바른 URL (즉, 양식 자체의 URL이 아닌 양식의 타겟 URL)을 사용하고 있습니까? –
오, 나는 그것을 고려하지 않았다. 개발 도구를 살펴본 후 양식 작업이 내가 본 페이지와 다름을 알 수 있습니다. 나는 그것을 시도하고 다시보고 할 것이다. –
감사합니다 lc! 그것은 장애없이 일했습니다. 제한된 경험으로 나는 그걸 확인하려고 생각하지 않았지만 지금은 그렇게 간단하고 명백합니다. 매우 감사. –