iOS 응용 프로그램을 수행하고 있으며 Content-Type 헤더를 직접 설정해야합니다.Content-Type을 재정 의하여 내부 서버 오류가 발생합니다.
HTTP 헤더를 무시할 때마다 웹 서버는 500 - 내부 서버 오류를 반환합니다.
그래서 PHP 코드로 iOS 또는 서버 측 오류인지 확인했습니다.
$target_url = 'http://myserver.com';
$file_name_with_full_path = realpath('8.jpeg');
$post = array('extra_info' => '123456','file_contents'=>'@'.$file_name_with_full_path);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: multipart/form-data; boundary=--xxx"));
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result=curl_exec ($ch);
curl_close ($ch);
echo $result;
위의 코드는 내부 서버 오류로 응답합니다.
하지만 벨로우즈 라인을 제거 할 때마다 정상적으로 작동합니다.
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: multipart/form-data; boundary=--xxx"));
마지막으로 Chrome Postman 플러그인으로 문제를 다시 생성하려고 시도했습니다. 나는 같은 결과를 얻었다. Content-Type
을 multipart/form-data
으로 설정하면 같은 문제가 발생합니다.
오버 라이딩 헤더를 허용하기 위해 아파치 또는 PHP 구성과 관련이 있습니까?
이 문제를 해결하는 데 대한 단서를 찾아 주셔서 감사합니다.
서버 오류 로그를 확인하십시오. – Rikesh
나는 서버 관리자에게 연락하여 오류가 기록되지 않았다고 말했다. 나는 정말로 혼란스러운 상황에 처해있다. –
PHP 오류를 켜십시오. 파일의 맨 위에'in_set (display_errors, 1);'을 추가하십시오. – Rikesh