다른 인코딩된 매개변수를 사용하여 요청 방법 가져오기

小云云
풀어 주다: 2023-03-20 13:22:01
원래의
1682명이 탐색했습니다.

매개변수 읽기 결과를 위한 작은 프로그램을 웹사이트로 보낼 때 문제가 발생했습니다. 웹사이트에서는 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秒确保数据发送完成,我的请求比较简单,复杂的也可以判断数据发送完成再处理。。。
로그인 후 복사

수신 처리에 대한 부분은 위에서 언급한 기사를 참조할 수 있습니다. 주로 청크된 데이터를 처리합니다. 수신 처리에는 특별한 처리가 필요합니다.

관련 권장 사항:

get 요청의 특수 기호 문제

get 요청에 대한 예제 튜토리얼

WeChat 애플릿 네트워크 요청(GET 요청) 세부 지침

위 내용은 다른 인코딩된 매개변수를 사용하여 요청 방법 가져오기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿