HP Quality Center를 사용하며 11.5x를 12.21로 업그레이드하고 API를 사용하여 티켓을 만듭니다. 접속 및 티켓 생성은 정상이지만 파일 첨부는 아닙니다.QC REST API : 지원되지 않는 미디어 유형
나는 내가 {"Id":"qccore.general-error","Title":"Illegal multi-part arguments. Attachment wasn't created.","ExceptionProperties":null,"StackTrace":null}
그래서 나는 다중 구조의 실수 나 나쁜 헤더가있어 다른 다중/폼 데이터를 사용하는 경우 다음
{"Id":"qccore.general-error","Title":"Unsupported Media Type","ExceptionProperties":null,"StackTrace":null}
내 코드
$filename = $file->name;
$eol = "\r\n";
$mime_boundary = 'boundary';
$content = '--' . $mime_boundary . $eol;
$content .= 'Content-Disposition: form-data; name="entity.type"';
$content .= $eol . $eol;
$content .= 'defect';
$content .= $eol;
$content = '--' . $mime_boundary . $eol;
$content .= 'Content-Disposition: form-data; name="entity.id"';
$content .= $eol . $eol;
$content .= $id;
$content .= $eol;
$content = '--' . $mime_boundary . $eol;
$content .= 'Content-Disposition: form-data; name="filename"';
$content .= $eol . $eol;
$content .= utf8_encode($filename);
$content .= $eol;
$content .= '--' . $mime_boundary . $eol;
$content .= 'Content-Disposition: form-data; name="file"; filename="' . utf8_encode($filename) . '"';
$content .= $eol;
$content .= 'Content-Type: ' . $file['type'];
$content .= $eol . $eol;
$dt = explode('-', $file->create_dt);
$path_file = $config['files']['forms_attachments_path'] . DIRECTORY_SEPARATOR . $dt[0] . DIRECTORY_SEPARATOR . $dt[1] . DIRECTORY_SEPARATOR . $file->filename;
$handle = fopen($path_file, 'r');
$content .= fread($handle,filesize($path_file));
fclose($handle);
$content .= $eol;
$content .= '--' . $mime_boundary . '--';
$header = array(
'Content-Type: multipart/mixed; boundary='.$mime_boundary,
'Content-Length: '.strlen($content),
'Accept: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POSTFIELDS, $content);
curl_setopt($ch, CURLOPT_COOKIE, $cookiess);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_PROXY, null);
curl_setopt($ch, CURLOPT_URL, $config['qc']['url'] . '/api/domains/' . $config['qc']['domain']. '/projects/' . $config['qc']['project'] . '/attachments/');
$output = curl_exec($ch);
curl_close($ch);
var_dump($output);
입니다 있어요 content-type에 대해서는,하지만 우리가 테스트 한 모든 것은 실패합니다.
첨부 파일을 옥텟 스트림 방식으로 넣으려고했지만 미디어 유형 오류가 발생했습니다.
귀하의 도움에 감사드립니다.