개발! 딱 깔끔하고 센스있게!

PHP c URL 의 내용 형식 이 설정 되 지 않 았 습 니 다. 본문

개발 스크랩 메모/PHP

PHP c URL 의 내용 형식 이 설정 되 지 않 았 습 니 다.

렉사이 2020. 12. 10. 23:53

연결 하고 싶 은 간단 한 인터넷 서비스 가 있 습 니 다.

웹 서버 에서 올 바 르 게 실행 할 XML 을 발표 하기 위해 서 는 올 바른 요청 이 필요 합 니 다.

제 가 이 걸 웨 이브 로 만 들 게 요.

try { $ch = curl_init(); if (FALSE === $ch) throw new Exception('failed to initialize'); curl_setopt($ch, CURLOPT_URL,"192.168.1.37"); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/xml', 'Connection: Keep-Alive' )); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password); curl_setopt($ch, CURLOPT_PROXY, ''); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE); curl_setopt($ch, CURLOPT_HTTPHEADER,array("Expect: ")); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS,$xml); $request= curl_getinfo($ch); var_dump($request); $content = curl_exec($ch); if (FALSE === $content) throw new Exception(curl_error($ch), curl_errno($ch)); } catch(Exception $e) { trigger_error(sprintf( 'Curl failed with error #%d: %s', $e->getCode(), $e->getMessage()),E_USER_ERROR); } 

다 잘 됐 을 텐 데.먼저 curl getfo ($ch) 요청 체 를 표시 하고 $content 변 수 를 표시 합 니 다.

서버 에 요청 한 유일한 한 계 는 콘 텐 츠 형식 머리 입 니 다.

- 애플 리 케 이 션 / xml 이 어야 합 니 다.

그렇지 않 으 면 서버 에서 오류 로 응답 할 수 있 습 니 다.

(이것 은 제 아이디어 가 아 닙 니 다.

아무것도 할 수 없습니다.

)

아래 는 출력 요구 입 니 다:

"연결 시간" = > 부동 소수점 (0) ["사전 전송 시간"] = > 부동 점 (0)['크기 업로드'] = > 부동 점 (0) ['크기 업로드'] = > 부동 점 (0) [속도 다운로드] = > 부동 점 (0) ['속도 업로드'] = = > 부동 점 (0) [다운로드 내용 길이] = > 부동 점 (1) [업로드 내용 길이] = > 부동 점 (1) [업로드 내용 길이] = > 부동 점 (1) [전송 시간 시작] = > 부상 점 (0) [재 정격 시간] = > 부동 점 (0) [0) [증빙정보] [인증서 정보] = 0) > 그룹 (0)]}

HTTP 400 오류 요청 에 응답 하기

에서 볼 수 있 는 것 은 [content type] = > NLL 입 니 다.

하지만 PHP 코드 에 이 변 수 를 설정 하 였 습 니 다.

누가 나 에 게 무엇이 부족 한 지 알려 줄 수 있 습 니까?

대답 하 다.

HTTP 머리 를 두 번 설정 하 는 중:

curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/xml', 'Connection: Keep-Alive' )); curl_setopt($ch, CURLOPT_HTTPHEADER,array("Expect: ")); 

그게 문제 라 고 생각 합 니 다.

두 번 째 설정 시 첫 번 째 설정 이 삭 제 됩 니 다.

Comments