매개변수 읽기 결과를 위한 작은 프로그램을 웹사이트로 보낼 때 문제가 발생했습니다. 웹사이트에서는 get 메소드를 사용하여 쿼리 매개변수를 전송하지만 웹사이트 형식에 따라 매개변수 쿼리 결과를 보낼 때 결과가 항상 비어 있습니다. . 바이올린을 사용하여 패킷을 캡처한 결과 웹사이트에서 쿼리 매개변수를 보낸 것을 발견했습니다. 매개변수는 UTF-8로 인코딩된 URLENCODE가 아니지만 GBK로 인코딩된 문자가 서버로 직접 전송됩니다. 오랫동안 검색했는데 해결방법이 없어서 참고용으로 아주 유용한 글을 찾아서 링크를 열어보니 요청보내는 방법을 살짝 바꿔서 해결방법을 직접 녹음해봤습니다.
Http 요청은 기본적으로 바이트 스트림을 전송하므로 C#에서 httpwebrequestresponse 대신 소켓을 사용하여 구현할 수 있습니다.
요청 보내기:
public void SendRequest(string server,string requestString,Encoding e){ Uri u= new Uri(server); Socket s=new Socket(AddressFamily.InternetNetwork, SocketType.Stream, ProtocolType.Tcp); s.SendTimeout=3000; s.ReceiveTimeout=3000; s.Connect(u.Host,u.Port); if(s.Connected) { s.Send(e.GetBytes(s),SocketFlags.None); System.Threding.Thread.Sleep(1000);//等待1秒确保数据发送完成,我的请求比较简单,复杂的也可以判断数据发送完成再处理。。。
수신 처리에 대한 부분은 위에서 언급한 기사를 참조할 수 있습니다. 주로 청크된 데이터를 처리합니다. 수신 처리에는 특별한 처리가 필요합니다.
관련 권장 사항:
WeChat 애플릿 네트워크 요청(GET 요청) 세부 지침
위 내용은 다른 인코딩된 매개변수를 사용하여 요청 방법 가져오기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!