Java接口访问405_java – 为什么我在执行POST请求时得到405方法不允许

我是其他服务的新手.我正在尝试创建一个从客户端接受json字符串的服务.当我使用

JQuery调用此服务时,我收到405错误.下面是ws的Java代码:

这是我向JERSEY POST RESTFUL Webservice发布请求的方式.

var orderinfo = {'ordersplitjson': ordersplitjson, 'customer_id': cust_id , 'homedelivery': homedelivery, 'seatnum' :seatnum , 'locationname':location_nam , 'rownum':rownum};

var json_data = JSON.stringify(orderinfo);

var ajaxcallquery = $.ajax({

type:'POST',

dataType: 'jsonp',

data: json_data,

contentType: "application/json; charset=utf-8",

url:url+'/OMS/oms1/orderinsertservice',

jsonpCallback:'jsonCallback',

jsonp:false,

success: function(response)

{

},

error: function(jqxhr, status, errorMsg) {

alert('Failed! ' + errorMsg);

}

});

public class OrdersInsertService

{

@POST

@Consumes(MediaType.APPLICATION_JSON)

@Produces("application/json")

public String getData(OrderInfo order,@Context HttpServletResponse serverResponse)

throws JSONException

{

serverResponse.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD");

serverResponse.addHeader("Access-Control-Allow-Credentials", "true");

serverResponse.addHeader("Access-Control-Allow-Origin", "*");

serverResponse.addHeader("Access-Control-Allow-Headers", "Content-Type,X-Requested-With");

serverResponse.addHeader("Access-Control-Max-Age", "60");

}

}

package com.util;

public class OrderInfo {

String ordersplitjson;

public String getOrdersplitjson() {

return ordersplitjson;

}

public void setOrdersplitjson(String ordersplitjson) {

this.ordersplitjson = ordersplitjson;

}

public String getCustomer_id() {

return customer_id;

}

public void setCustomer_id(String customer_id) {

this.customer_id = customer_id;

}

public String getHomedelivery() {

return homedelivery;

}

public void setHomedelivery(String homedelivery) {

this.homedelivery = homedelivery;

}

public String getSeatnum() {

return seatnum;

}

public void setSeatnum(String seatnum) {

this.seatnum = seatnum;

}

public String getLocationname() {

return locationname;

}

public void setLocationname(String locationname) {

this.locationname = locationname;

}

public String getRownum() {

return rownum;

}

public void setRownum(String rownum) {

this.rownum = rownum;

}

String customer_id;

String homedelivery;

String seatnum;

String locationname;

String rownum;

}

有人可以让我知道如何解决这个问题

我正在使用Jersey 1,当我使用你的课时,它给我一个eclipse中的编译错误,如图所示

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中使用POST请求调用参数格式为form-data的接口可以使用Apache HttpClient库来实现。下面是一个示例代码: ```java import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.ContentType; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import java.io.File; import java.io.IOException; public class FormPostRequestExample { public static void main(String[] args) throws IOException { CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("http://example.com/api"); File file = new File("file.txt"); MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.addBinaryBody("file", file, ContentType.DEFAULT_BINARY, file.getName()); HttpEntity multipart = builder.build(); httpPost.setEntity(multipart); CloseableHttpResponse response = httpClient.execute(httpPost); HttpEntity responseEntity = response.getEntity(); System.out.println("Response status: " + response.getStatusLine()); System.out.println(EntityUtils.toString(responseEntity)); httpClient.close(); } } ``` 在上述代码中,我们创建了一个CloseableHttpClient实例,并构造了一个HttpPost对象来表示我们要访问的API的URL。我们还创建了一个File对象来表示我们要上传的文件。 接下来,我们使用MultipartEntityBuilder类来构造一个包含文件数据的HttpEntity对象。我们将文件数据添加到MultipartEntityBuilder实例中,然后将其构建为HttpEntity实例,并将其设置为HttpPost对象的实体。 最后,我们使用HttpClient实例来执行HttpPost请求,并将响应数据打印到控制台上。 请注意,上述示例代码仅适用于上传文件的情况。如果您需要向API发送其他类型的数据,请根据API文档中提供的信息构造正确的HttpEntity对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值