2016-10-05 2 views
0

간단한 작업으로 연구 현장을 단순화하기 위해 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 응답을 시도했지만 아무도 작동하지 않았습니다.

미리 제안 해 주시고 의견을 보내 주셔서 감사합니다.

+1

올바른 URL (즉, 양식 자체의 URL이 아닌 양식의 타겟 URL)을 사용하고 있습니까? –

+0

오, 나는 그것을 고려하지 않았다. 개발 도구를 살펴본 후 양식 작업이 내가 본 페이지와 다름을 알 수 있습니다. 나는 그것을 시도하고 다시보고 할 것이다. –

+0

감사합니다 lc! 그것은 장애없이 일했습니다. 제한된 경험으로 나는 그걸 확인하려고 생각하지 않았지만 지금은 그렇게 간단하고 명백합니다. 매우 감사. –

답변

1

lc는 나를 올바른 길로 인도합니다. 나는 폼 입력을받는 것에 대해 나쁜 가정을했다. 이제 결과 페이지 URL도 시도해야한다는 것이 확실합니다. 갈 시간은 더 많은 PHP와 웹 디자인을 배울 것입니다.