JSP页面POST请求上出现HTTP错误415,但在PHP上有效

JSP页面POST请求上出现HTTP错误415,但在PHP上有效,php,jsp,http,post,http-status-code-415,Php,Jsp,Http,Post,Http Status Code 415,我不确定我到底能做些什么来了解我的POST请求有什么问题。我已经用PHP制作了一个快速原型,使用CURL库来构造我的请求。当我尝试在JSP页面中执行相同的功能时,我得到一个HTTP错误415。我不知道如何修理它。我在PHP页面和web调试器(fiddler)上都得到了正确的答案,没有错误。我还能够使用我正在使用的RESTAPI的另一部分在这个JSP页面上成功地执行get请求。我能做些什么来发现问题 下面是JSP代码 String xmlRequest = "<viewParameters&

我不确定我到底能做些什么来了解我的POST请求有什么问题。我已经用PHP制作了一个快速原型,使用CURL库来构造我的请求。当我尝试在JSP页面中执行相同的功能时,我得到一个HTTP错误415。我不知道如何修理它。我在PHP页面和web调试器(fiddler)上都得到了正确的答案,没有错误。我还能够使用我正在使用的RESTAPI的另一部分在这个JSP页面上成功地执行get请求。我能做些什么来发现问题

下面是JSP代码

String xmlRequest = "<viewParameters><vslText>[field1] = '01510486'</vslText></viewParameters>";
try
{
    URL url = new URL("*****");
    HttpURLConnection conn = (HttpURLConnection)url.openConnection();

    //Connection Properties
    conn.setRequestMethod("POST");
    conn.setDoOutput(true);
    conn.setFollowRedirects(true);

    //Header Parameters
    conn.addRequestProperty("X-IntegrationServer-Username", "******");
    conn.addRequestProperty("X-IntegrationServer-Password", "*******");
    conn.setRequestProperty("ContentType", "application/xml");
    conn.setRequestProperty("Host", "*********");
    conn.setRequestProperty("Content", "viewParameters");
    conn.setRequestProperty("Accept", "application/xml");

    //Post Parameter
    OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
    writer.write(xmlRequest);

    conn.connect();

    //CHECK HTML RESPONSE 
    out.print("<br>Response code = " + conn.getResponseCode());
    out.print("<br>Response message = " + conn.getResponseMessage() + "<br><br>");

    //Output Here
    InputStream input = conn.getInputStream();

    //Takes XML and puts it into one string variable
    BufferedReader inputReader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    StringBuilder sb = new StringBuilder();
    String inline = "";
    while ((inline = inputReader.readLine()) != null) {
      sb.append(inline);
    }


    inputReader.close(); 

    out.print(sb.toString());

    } catch (Exception e) {
e.printStackTrace();
}
String xmlRequest=“[field1]='01510486';
尝试
{
URL=新的URL(“****”);
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
//连接属性
conn.setRequestMethod(“POST”);
连接设置输出(真);
conn.setFollowRedirects(真);
//标题参数
conn.addRequestProperty(“X-IntegrationServer-Username”,“*******”);
conn.addRequestProperty(“X-IntegrationServer-Password”,“*******”);
conn.setRequestProperty(“ContentType”、“application/xml”);
conn.setRequestProperty(“主机”,“*******”);
conn.setRequestProperty(“内容”、“视图参数”);
conn.setRequestProperty(“接受”、“应用程序/xml”);
//Post参数
OutputStreamWriter writer=新的OutputStreamWriter(conn.getOutputStream());
write.write(xmlRequest);
连接();
//检查HTML响应
out.print(“
响应代码=“+conn.getResponseCode()); out.print(“
响应消息=“+conn.getResponseMessage()+”

”; //此处输出 InputStream input=conn.getInputStream(); //获取XML并将其放入一个字符串变量中 BufferedReader inputReader=新的BufferedReader(新的InputStreamReader(conn.getInputStream()); StringBuilder sb=新的StringBuilder(); 字符串inline=“”; 而((inline=inputReader.readLine())!=null){ 某人追加(内联); } inputReader.close(); 把(某人的)东西打印出来; }捕获(例外e){ e、 printStackTrace(); }
下面是正在工作的PHP代码

<?php 

$curl = curl_init();

//xml to send to server
$xmlRequest = "<viewParameters><vslText>[field1] = '********'</vslText></viewParameters>";

//took out 'Content-Length: ' . strlen($xmlRequest)
$requestParam = array('X-IntegrationServer-Username: ********', 'X-IntegrationServer-Password: ************', 'Host: *************', 'Content-Type: application/xml', 'Content: viewParameters');

curl_setopt($curl, CURLOPT_HTTPHEADER, $requestParam);

curl_setopt($curl , CURLOPT_URL, '***************');

//stops SSL errors but also turns off security for it check this link   http://stackoverflow.com/questions/21187946/60-ssl-certificate-self-signed-certificate-in-certificate-chainbool
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $xmlRequest); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec($curl);

//if no response comes through tries to give error message
if(!$response){
    die('Error: "' . curl_error($curl) . '" - Code: ' . curl_errno($curl));
}

curl_close($curl);

$xml = simplexml_load_string($response);
记住破折号

conn.setRequestProperty("ContentType", "application/xml");
应该是

conn.setRequestProperty("Content-Type", "application/xml");

415 error=服务器拒绝为请求提供服务,因为请求的实体的格式不受请求方法的请求资源的支持。所以我猜您在转换中遗漏了一些东西,jsp代码中定义了
xmlRequest
?您查看了响应消息了吗?应该有一条消息与错误415一起出现。415是不受支持的媒体类型。您是否正在将任何文件上载到服务器?@riggsfully我不知道我真正需要在哪里转换任何内容。也许这是我不需要使用CURL库做的事情,但我不需要为php做的。@Jorge Campos很抱歉,就在try块之前,我将编辑以显示。