Tag: http headers

从Matlab内部调用JAX-WS Web服务

我有一个Vanguard webservice,我可以使用自定义java类调用(使用基本身份validation)。 java wsimport工具用于生成java代理存根,这一切都很完美。 java代码(下面的所有类都是由wsimport根据url +身份validation信息生成的): Authenticator.setDefault(new SimpleAuth(username,pass)); MyWSObject obj = new MyWSObject(url); -> triggers the exception ServicePortType port = obj.getServicePort(); OutputType result = port.MyWSMethod(params); OutputData data = result.getOutputData(); 当我从matlab运行完全相同的java函数(包含上面的代码)时,webservice调用失败并出现一个模糊的错误: ??? Java exception occurred: com.sun.xml.internal.ws.streaming.XMLStreamReaderException: XML reader error: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character ‘”‘ (code 34) in DOCTYPE declaration; expected a space between public and system identifiers […]

配置Apache HttpClient通过代理/负载均衡器访问服务(覆盖主机头)

我在使用Apache HttpClient连接到虚拟化开发环境外部的服务时遇到问题。 要访问互联网(例如api.twitter.com),我需要调用本地URL(例如api.twitter.com.dev.mycompany.net),然后将请求转发给真正的主机。 问题是,对于我发送的任何请求,我得到404 Not Found响应。 我尝试使用wget对其进行调试,问题是,目标服务器通过使用请求URL和Host头中的主机名来识别所需的资源。 由于主机名不匹配,因此无法找到资源。 我(尝试通过)在客户端上设置http.virtual-host参数来尝试覆盖Host头,但是没有成功: HttpClient client = new DefaultHttpClient(); if (envType.isWithProxy()) { client.getParams().setParameter(ClientPNames.VIRTUAL_HOST, “api.twitter.com”); } 技术细节: 客户端在RESTeasy中用作执行程序来调用REST API。 因此,“手动”设置虚拟主机(如此处所述)不是一种选择。 一切都通过HTTPS / SSL完成 – 而不是我认为它有所作为。 编辑1:使用HttpHost而不是String也没有所需的效果: HttpClient client = new DefaultHttpClient(); if (envType.isWithProxy()) { HttpHost realHost = new HttpHost(“api.twitter.com”, port, scheme); client.getParams().setParameter(ClientPNames.VIRTUAL_HOST, realHost); } 编辑2:进一步调查显示,需要在请求对象上设置参数。 以下是设置虚拟主机的HttpClient的代码v.4.2-aplha1: HttpRequest orig = request; RequestWrapper […]

如何在Java Android中为客户端请求设置HttpPost标头

我无法让Apache HttpClient正确发送HttpPost标头。 我没有问题发送名称值对等等,但每当我设置或添加POST标头时,它会在发出请求时消失。 我已经尝试了setHeader和addHeader,以及同时尝试这两个。 这是我的代码: HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(“https://posttestserver.com/post.php”); httppost.setHeader(“Authorization: Bearer”, accessToken); httppost.addHeader(“Authorization: Bearer”, accessToken); Log.d(“DEBUG”, “HEADERS: ” + httppost.getFirstHeader(“Authorization: Bearer”)); ResponseHandler responseHandler = new BasicResponseHandler(); String responseBody = httpclient.execute(httppost, responseHandler); Log.d(“DEBUG”, “RESPONSE: ” + responseBody); 此外,执行请求之前的调试语句打印出正确的标题,因此我知道它正在添加,然后稍后删除。 任何帮助将非常感激! 编辑:如果重要的话,这都在AsyncTask中运行。 我认为没有,因为有一个NetworkOnMainThreadexception抛出,但我认为值得一提。

在Jasperreports中从服务器接收多个不同的Content-Disposition标头

我正在尝试设置内容处置标头以响应servlet,但我在浏览器中收到此错误。 我该怎么办? 从服务器收到重复的标头 来自服务器的响应包含重复的标头。 此问题通常是配置错误的网站或代理的结果。 只有网站或代理管理员才能解决此问题。 错误349(net :: ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION):收到多个不同的Content-Disposition标头。 这是不允许防止HTTP响应分裂攻击。 这是我的servlet控制器: @RequestMapping(“/**/paymentOrderReport.pdf”) public class PaymentOrderReportViewController extends org.springframework.web.servlet.mvc.AbstractController { private PaymentDao paymentDao; private JasperPdfView pdfView; @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { response.setContentType(“application/pdf”); response.setHeader(“Content-disposition”, “attachment; filename=” + “report.pdf”); PaymentOrderEntity paymentOrderEntity = null; String traceCode = request.getParameter(ParamConstants.TRACE_CODE); if (traceCode != null) { PaymentSheetRequestEntity payRequestEntity […]

获取响应获取或发布请求的响应字符集

我正在java web应用程序中提取响应字符集,我正在使用Apache HTTP Client。 例如,从“Content-Type”标题获得的一个可能值是 text/html; charset=UTF-8 然后我的代码将在“=”符号后提取所有文本… 所以提取的字符集将是 UTF-8 我只是想知道,上面获取响应字符集的方法是否正确? 或者是否存在上述代码不起作用的情况? 这里有什么我想念的吗?

如何确定请求是Ajax还是Normal?

我想以不同的方式处理AJAX请求与正常请求的错误。 如何在Struts2操作中识别请求是否为AJAX?

JAX-RS自定义标头未添加到重定向响应中

我试图将一些自定义标头参数添加到HTTP 303(重定向)响应。 但是,新标题似乎从响应中被剥离。 此代码用于接收请求并返回HTTP 303响应: @POST @Path(“/authorize”) @Produces(“application/x-www-form-urlencoded”) public Response getOAuthGrant(@HeaderParam(OAuth2.AUTHORIZATION) @DefaultValue(“”) String authorization, @HeaderParam(OAuth2.CLIENT_ID) @DefaultValue(“”) String clientId, @HeaderParam(OAuth2.CLIENT_SECRET) @DefaultValue(“”) String clientSecret, @HeaderParam(OAuth2.GRANT_TYPE) @DefaultValue(“”) String grantType) throws InternalServerException, UnauthorizedException { OAuth2.validateGrantRequest(clientId, clientSecret, authorization, grantType); ApiTokenV2 apiTokenV2 = new ApiTokenV2(); try { apiTokenV2 = TokenManager.getApiToken(clientId); if (apiTokenV2 != null) { apiTokenV2.generateAccessGrant(clientId); } else { logger.error(“Error in […]

使用RestTemplate进行基本身份validation – 编译错误 – 构造函数HttpClient()不可见

试图将基本身份validation添加到restTemplate 我遇到的问题是我无法初始化:(在代码片段中都有导入) HttpClient client = new HttpClient(); 此代码解决了编译错误(eclipse没有提供修复此问题的建议) 1)问题是什么? 2)我输入了错误的课程吗? 我的代码片段: import org.apache.http.client.HttpClient; //OR (not together) import sun.net.www.http.HttpClient; HttpClient client = new HttpClient(); //this line dosent compile UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(“USERNAME”,”PASS”); client.getState().setCredentials( new AuthScope(“www.example.com”, 9090, AuthScope.ANY_REALM), credentials); CommonsClientHttpRequestFactory commons = new CommonsClientHttpRequestFactory(client); RestTemplate template = new RestTemplate(commons); SomeObject result = template.getForObject( “http://www.example.com:9090/”,SomeObject.class ); 运行此获取exception: […]

在App Engine上的Servlet响应中覆盖与缓存相关的HTTP标头

我在App引擎上有一个servlet来提供图像。 servlet正确设置HTTP标头值以指示应缓存图像。 但App Engine会覆盖这些标题,导致图像未被缓存。 请注意,之前使用相同的代码,但现在它不起作用。 App引擎文档指出,如果servlet设置了Cache-Control , Expires和Vary标头,它们将保持不变: https : //developers.google.com/appengine/docs/java/runtime#Responses 这是我的示例代码: response.setContentType( “image/jpeg” ); //response.setDateHeader( “Expires”, new Date().getTime() + 60L*24*60*60*1000 ); // 60 days cache time //response.addHeader( “Cache-Control”, “public, max-age=5184000” ); // 5_184_000 sec = 60 days cache time response.addHeader( “Cache-Control”, “public, max-age=90000” ); // 90_000 sec = 25 hours cache time response.getOutputStream().write( data […]

如何装饰所有请求从标头中获取值并将其添加到body参数?

背景 我正在使用Spring MVC创建RESTful服务。 目前,我有一个控制器的结构如下: @RestController @RequestMapping(path = “myEntity”, produces=”application/json; charset=UTF-8″) public class MyEntityController { @RequestMapping(path={ “”, “/”} , method=RequestMethod.POST) public ResponseEntity createMyEntity( @RequestBody MyEntity myEntity, @RequestHeader(“X-Client-Name”) String clientName) { myEntity.setClientName(clientName); //rest of method declaration… } @RequestMapping(path={ “/{id}”} , method=RequestMethod.PUT) public ResponseEntity updateMyEntity( @PathVariable Long id, @RequestBody MyEntity myEntity, @RequestHeader(“X-Client-Name”) String clientName) { myEntity.setClientName(clientName); //rest of […]