Getting 400 Bad requestion while connecting to RQM via API
RQM connection is successful after that adding header and trying to POST gives error.
the request body is an xml, and the xml is converted and given as input stream.attached the code below. Kindly help in solving the issue. for the connection.doPost(fis, l, "xml"); i have tried all the combinations for content type like application/xml, XML, .xml and text/xml. while debugging inside the api methods i found the response of execute method is given 400 . till that the execution and the URI receiving happens correctly. try { connection = rawRestServiceClient.getConnection(uri);
connection.addRequestHeader("Slug", "49"); connection.addRequestHeader("Referer", "https://rb-alm-05-d.de.bosch.com/qm"); connection.addRequestHeader("Content-Type", "application/xml"); connection.addRequestHeader("Accept", "application/xml"); InputStream fis = null; ByteArrayOutputStream os = new ByteArrayOutputStream(); int b;
try { fis = new FileInputStream( new File("C:\\temp\\vid3cob\\workspace\\orion\\8.0.1\\workspace\\com.bosch.almmig.reqone\\Testplan.xml")); } catch (FileNotFoundException e) { // TODO Auto-generated catch block LOGGER.error("Rqone query prefix is not encoded properly", e); } try { if (fis != null) {
while ((b = fis.read()) != -1) { os.write(b); } // connection.doGet(); Long l = new Long(os.size()); // connection.doPost(fis, l, "xml");
connection.doPost(fis, l, "xml"); } |
One answer
Are you using the RQM OSLC API or RQM Reportable REST API? To use the OSLC API, you'll need specific headers (see https://jazz.net/wiki/bin/view/Main/RqmOslcQmV2Api#Headers). I would suggest using your favorite browser plugin to issue HTTP requests (e.g. Poster/HttpRequester) to learn how to use the API before using a code example.
|
Your answer
Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.
Comments
Have you checked the response body, or the qm.log file on the server for more detailed information?
Hi Donald,
is this the one
com.ibm.team.repository.common.transport.TeamServiceException: CRJAZ2942E A request from this server to another server could not be completed. The other server returned a 400 HTTP error with this error text: Bad Request.
at com.ibm.team.repository.transport.client.RemoteTeamServer.throwHttpClientError(RemoteTeamServer.java:2105)
at com.ibm.team.repository.transport.client.RemoteTeamServer.executeMethod(RemoteTeamServer.java:1296)
at com.ibm.team.repository.transport.client.RemoteTeamServer.executeMethod(RemoteTeamServer.java:1121)
at com.ibm.team.repository.transport.client.RestClientConnectionBase.executeMethod(RestClientConnectionBase.java:375)
Not likely. You should just reproduce the problem and check the latest message in the qm.log file.