标签: custom-headers

将我的自定义http标头添加到Spring RestTemplate请求/扩展RestTemplate

我目前的代码:

RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
Mall[] malls = restTemplate.getForObject(url, Mall[].class);
Run Code Online (Sandbox Code Playgroud)

我需要在表单中为我的请求添加一些自定义标头:

X-TP-DeviceID : <GUID>
Run Code Online (Sandbox Code Playgroud)

在我的案例中,最简单的方法是什么?restTemplate在将请求发送到服务器之前,有没有办法向我的对象添加自定义标头定义?

[编辑]

这是对的吗?

RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());

HttpHeaders headers = new HttpHeaders();
headers.set("X-TP-DeviceID", "1234567890");
HttpEntity entity = new HttpEntity(headers);

HttpEntity<Mall[]> response = restTemplate.exchange(url, HttpMethod.GET, entity, Mall[].class);

Mall[] malls = response.getBody();
Run Code Online (Sandbox Code Playgroud)

[添加]

所以,我设法让它工作.但是,我对此并不完全满意.在我的情况下,我将需要为我所做的所有调用提供相同的自定义标头.

所以,我的下一个问题是 - 是否可以设置我的自定义标头在每次web-service调用时自动添加,例如,通过扩展RestTemplate类并将所有自定义标头放在那里?然后,我需要做的就是简单地使用我的自定义扩展RestTemplate而不是库存扩展,默认情况下我的所有自定义标头都会出现在那里.

java rest spring custom-headers

25
推荐指数
3
解决办法
8万
查看次数

Python中的Selenium PhantomJS自定义标头

我想在python中向Selenium PhantomJS添加"自定义标题".这些是我想要添加的标题.

headers = { 'Accept':'*/*',
            'Accept-Encoding':'gzip, deflate, sdch',
            'Accept-Language':'en-US,en;q=0.8',
            'Cache-Control':'max-age=0',
            'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36'
          }
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码:

from selenium import webdriver

service_args = [
    '--proxy=127.0.0.1:9999',
    '--proxy-type=socks5',
    ]
driver = webdriver.PhantomJS(service_args=service_args)


driver.set_window_size(1120, 550)
driver.get("https://duckduckgo.com/")
driver.find_element_by_id('search_form_input_homepage').send_keys("realpython")
driver.find_element_by_id("search_button_homepage").click()
print driver.current_url
driver.quit()
Run Code Online (Sandbox Code Playgroud)

如何修改包含这些自定义标头的代码?

请帮忙.

python selenium custom-headers phantomjs

13
推荐指数
2
解决办法
2万
查看次数

chromium - 在初始页面加载c#上发送自定义标题信息

或者如何在新建ChromiumWebBrowser实例时将自定义标头注入到站点的初始请求中.

我是Chromium的菜鸟,可以真正使用一些帮助.我有一个带CEF窗口的winforms应用程序.K,到目前为止没有问题.我需要做的是使用包含身份验证信息的自定义http-header调用/加载初始URL.这可能吗?

以下基本上是正在发挥作用的所有部分工作,除了自定义标题(Doh!)

Winform(CEF httpRequest(带有自定义标头))[永远不会超过这一点] => C#MVC web app => Owin_Authentication_Pipeline segment => MVC响应,带有填充的Razor视图=>显示在Winform Chromium应用程序中.

也许这也会有所帮助:

using CefSharp;
using CefSharp.WinForms;
...
private void Form1_Load(object sender, EventArgs e)
{
    Cef.Initialize();
    ChromiumWebBrowser myBrowser = new ChromiumWebBrowser("whatever.com");
    // ??How do i get a custom header be sent with the above line??

    myBrowser.Dock = DockStyle.Fill;
    //myBrowser.ShowDevTools();
    //myBrowser.RequestHandler = new DSRequestHander();
    //myBrowser.FrameLoadStart += myBrowser_FrameLoadStart;
    this.Controls.Add(myBrowser);
}
Run Code Online (Sandbox Code Playgroud)

我把它弄死了,看了看,尝试了我工具箱中的所有技巧,然后是一些.

我非常感谢任何想法,帮助或暗示我如何能够解决或绕过这个boggler.提前致谢.

c# winforms custom-headers chromium-embedded cefsharp

6
推荐指数
3
解决办法
6105
查看次数

是否可以在Javascript中设置跨域请求并设置自定义标头?

由于您无法在JSONP调用上应用自定义标头,如何使用jQuery创建跨域请求并应用自定义标头?

我基本上试图使用jQuery访问谷歌文档,并需要传递身份验证令牌:

var token = "my-auth-token";
$.ajax({
  url: "http://docs.google.com/feeds/documents/private/full?max-results=1&alt=json",
  dataType: 'json',
  beforeSend: function(xhr) {
    xhr.setRequestHeader("Authorization", "GoogleLogin auth=" + token);
  },
  success: function(data, textStatus, XMLHttpRequest) {
  },
  error: function(XMLHttpRequest, textStatus, errorThrown) {
  }
});
Run Code Online (Sandbox Code Playgroud)

注意:这样做的目的是完全绕过应用程序层.使用ruby连接到Google Data API很简单,但是它会占用很多资源,一直在服务器端解析Feed.

javascript ajax jquery cross-domain custom-headers

5
推荐指数
1
解决办法
8240
查看次数

Django自定义响应标头

我需要在Django项目中设置自定义响应标头。

这是来自facts / urls.py的代码:

d = {
    'app_name': 'facts',
    'model_name': 'Fact'
}

urlpatterns = patterns('',
    (r'^$', 'facts.main', d),
)
Run Code Online (Sandbox Code Playgroud)

这种方法显示模型中的数据,但是我不确定是否可以在此处设置自定义标头?

我还尝试了另一种方法-我使用以下功能创建了facts / views.py:

def fact(request):

    response = render_to_response('facts.html', 
                                  {'app_name': 'facts',
                                   'model_name': 'Fact'}, 
                                  context_instance=RequestContext(request))

    response['TestCustomHeader'] = 'test'

    return response
Run Code Online (Sandbox Code Playgroud)

并更改了urls.py中的代码:

(r'^$', facts.views.fact),
Run Code Online (Sandbox Code Playgroud)

此方法设置自定义标头,但不显示模型中的数据。

有什么帮助吗?

python django custom-headers

5
推荐指数
1
解决办法
8397
查看次数

将自定义HTTP标头添加到nginx X-Accel-Redirect

我使用X-Accel-Redirectnginx 在rails中提供受限制的下载.为了在客户端应用程序中验证我的下载,我试图将非标准HTTP标头中的校验和发送Content-MD5X-Accel-Redirect请求.但这不起作用.

用于执行重定向的rails片段下方

headers['X-Accel-Redirect'] = '/download_public/uploads/stories/' + params[:story_id] +'/' + params[:story_id] + '.zip'
            headers['X-Accel-Expires'] = 'max'
            checksum = Digest::MD5.file(Rails.root.dirname.to_s+'/public/uploads/stories/' + params[:story_id] +'/' + params[:story_id] + '.zip').hexdigest
            headers['Content-MD5'] = checksum
            request.session_options[:skip] = true
            render :nothing => true, :content_type => MIME::Types.type_for('.zip').first.content_type
Run Code Online (Sandbox Code Playgroud)

这是nginx部分

location /download_public { 
 internal;
 proxy_pass_header Content-MD5;
 add_header Cache-Control "public, max-age=315360000";
 add_header Content-Disposition "inline"; 
 alias /var/www/sss/public; 
}
Run Code Online (Sandbox Code Playgroud)

这显然不起作用.我无法在我的回复中获得Content-MD5标题.有没有办法从rails传递我的Content-MD5标题?

我知道有很多方法可以在nginx中完成,比如使用perl或lua编译nginx,并且可以轻松地计算MD5.但我不想这样做.

任何帮助深表感谢.

ruby-on-rails nginx custom-headers x-accel-redirect

5
推荐指数
2
解决办法
4389
查看次数

带有自定义标头的 Resttemplate GET 请求

我需要发送一个头的GET请求:Content-Type: application/camiant-msr-v2.0+xml。我期望来自服务器的 XML 响应。我用 Postman 测试了请求和响应,一切都很好。但是当我尝试在 Spring 中使用 时RestTemplate,我总是收到 400 个错误的请求。例外情况spring是:

Jul 09, 2016 12:53:38 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [dispatcherServlet] in context with path [/smp] threw exception [Request processing failed; nested exception is org.springframework.web.client.HttpClientErrorException: 400 Bad Request] with root cause
org.springframework.web.client.HttpClientErrorException: 400 Bad Request
    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91)
    at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:641)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:597)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:557)
    at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:475)
Run Code Online (Sandbox Code Playgroud)

我的代码:

MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
headers.add("Content-Type", "application/camiant-msr-v2.0+xml");

HttpEntity<?> entity = new HttpEntity<Object>(headers);
log.debug("request headers: …
Run Code Online (Sandbox Code Playgroud)

rest spring custom-headers resttemplate

5
推荐指数
2
解决办法
2万
查看次数

EventSource 连接中的自定义标头

当我EventSource在 JavaScript 中创建一个 new来侦听服务器发送的事件时,如下所示:

var source = new EventSource("data/pushed");
Run Code Online (Sandbox Code Playgroud)

有什么方法可以让我在传出的 HTTP 请求中指定额外的标头(比如一些身份验证令牌)?

javascript http custom-headers server-sent-events

3
推荐指数
1
解决办法
5140
查看次数

在web.py中获取自定义HTTP请求标头?

我知道,使用web.ctx.env,我可以从标题中获得大量信息 - 但只有标准标题.是否可以从web.py中的GET或POST方法中获取所有HTTP请求标头?

python web.py custom-headers http-headers

2
推荐指数
1
解决办法
2512
查看次数

如何使用swift中的POST方法使用参数和标头在Alamofire中发送请求

我使用发送请求时遇到问题Alamofire.我想发送一个带参数的POST请求,但我不知道在哪里放置自定义标头,如令牌.

这是我的代码:

let parameters = [
            "id": ID,
            "recipient_id" : recipientID,
            "is_match" : "1"
        ]

    Alamofire.request(.POST, Constants.baseURL + Constants.apiURL + Constants.accept, parameters: parameters, encoding: .JSON)
        .validate()
        .response { request, response, data, error in
            print(request)
            print(response)
            print(data)
            print(error)
        }
        .responseJSON { response in
            switch response.result {
            case .Success:
                print("Approve Successful")
                print("approve \(response)")


            case .Failure(let error):
                print(error)
            }
    }
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我正在使用 Alamofire 3.4

httprequest custom-headers ios swift alamofire

2
推荐指数
1
解决办法
6028
查看次数