标签: http-headers

如何在SoapUI中失败脚本断言?

当一个变量有另一个值而不是定义时,我试图让脚本断言失败.我的目标:如果TestStep失败,将TestStep标记为红色.请注意,我正在使用TestStep的脚本断言 - 而不是单独的Groovy-Script TestStep.我的脚本看起来像这样:

httpResponseHeader = messageExchange.responseHeaders
contentType = httpResponseHeader["Content-Type"]
log.info("Content-Type: " + contentType)

if (contentType != "[image/jpeg]"){
    log.info("ERROR! Response is not an image.")
    //Script Assertion should fail.
    //TestStep should be marked red.
} else {
    log.info("OK! ResponseType is an image.")
}
Run Code Online (Sandbox Code Playgroud)

有什么办法,如何让脚本断言取决于属性?我试过使用getStatus()方法,但这只适用于testrunner对象.不幸的是,testRunner-object不能在关于这篇文章的脚本断言中使用:http://forum.soapui.org/viewtopic.php? f = 2&t = 2494#p9107

groovy soapui assertions http-headers

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

Play Framework:如何为每个响应添加标题

在下面Controller,Authenticated从请求标头中提取标记,并且当且仅当标记有效时才调用给定的操作(为简单起见,代码已经简化):

object MyController extends Controller {

  def Authenticated(action: Token => EssentialAction) = EssentialAction { requestHeader =>
    val jwt = requestHeader.headers.get(HeaderNames.AUTHORIZATION) match {
      case Some(header) => s"""$AuthScheme (.*)""".r.unapplySeq(header).map(_.head.trim)
      case _ => requestHeader.getQueryString("auth").map(UriEncoding.decodePath(_, SC.US_ASCII.name))
    }

    jwt match {
      case Some(t) if t.isValid =>
        val token: Token = authService.token(t)
        action(token)(requestHeader)
      case _ => Done(Unauthorized.withHeaders(HeaderNames.WWW_AUTHENTICATE -> AuthScheme))
    }
  }

  def getUser(userId: String) = Authenticated { token =>
    Action.async { request =>
      userService.find(userId).map {
        case Some(user) => Ok(Json.obj("user" -> user.asJson)).withHeaders(
            "token" …
Run Code Online (Sandbox Code Playgroud)

scala token http-headers playframework

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

如何使用NSURLSession来确定资源是否已更改?

我正在使用NSURLSession从HTTP服务器请求JSON资源.服务器使用Cache-Control来限制资源缓存在客户端上的时间.

这很好用,但是我还想在内存中缓存一个反序列化的JSON对象,因为它经常被访问,同时继续利用NSURLSession中内置的HTTP缓存机制.

我想我可以保存一些HTTP响应头:Content-MD5,Etag以及Last-Modified反序列化的JSON对象(我使用这3个字段,因为我注意到并非所有HTTP服务器都返回Content-MD5,否则它本身就足够了) .下次我收到JSON对象的响应时,如果这3个字段相同,那么我可以重用以前反序列化的JSON对象.

这是一种确定deserizlied JSON仍然有效的可靠方法.如果没有,我如何确定反序列化的对象是否是最新的?

http-headers nsurlcache ios nshttpurlresponse nsurlsession

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

alamofire标头+参数

你好,世界,

我来找你是因为,我尝试在同一个函数中发送带参数的头文件,如下所示:

Alamofire.Manager.sharedInstance.request(.PUT, "url", headers: headers, parameters: parameters)
Run Code Online (Sandbox Code Playgroud)

但也许你已经知道只发送了标题.

我也尝试过这种方式:

 let manager = Alamofire.Manager.sharedInstance
 manager.session.configuration.HTTPAdditionalHeaders = [
            "Authorization": token]

 manager.request(.PUT, "http://192.168.99.100:3030/users/\(identity)", parameters: parameters, encoding:.JSON)
Run Code Online (Sandbox Code Playgroud)

但标题不会发送..

在alamofire中实现标头的简单方法是什么?

谢谢提前;-)

问候,

http-headers ios swift alamofire

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

HTTP标头中的多余空间在HAProxy上产生400错误

我们最近从citrix切换到HAProxy,以实现负载平衡。

问题在于,对于某些请求,HAProxy开始给出400错误(以前在citrix上正常工作)。因此,我们暂时从基于HTTP的负载平衡转向了基于TCP的负载平衡。

在进一步调查中,我们发现某些请求的HTTP标头中有多余的空间,这会导致400错误。

profileID<space>:value
vs
profileID:value
Run Code Online (Sandbox Code Playgroud)

这些请求来自android应用,因此我们无法更改源代码。

我们正在尝试回到基于http的负载平衡。

是否有任何配置设置可能会让我们忽略空间。

citrix http haproxy http-headers

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

如何选择application / x-www-form-urlencoded / multipart / form-data以GB为单位的文件大小?

我送了一些视频文件(大小可即使在GB)为application/x-www-form-urlencodedHTTP POST

下面链接的链接表明,这将是更好的传输过来多重表单数据时,我们有非字母数字内容。

  1. 哪种编码会更好地传输此类数据?

  2. 另外,如何找到编码数据的长度(使用编码的数据application/x-www-form-urlencoded)?

  3. 编码二进制数据会消耗很多时间吗?

  4. 通常,编码会跳过其他一些非字母数字字符。那么,我们可以跳过对二进制数据(例如视频)的编码吗?我们如何跳过呢?

post http url-encoding http-headers

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

R + fromJSON-如何发送标头信息?

如何使用fromJSON发送头信息?

例如,这就是我从服务器请求json数据的方式,但是服务器将需要我这边的一些身份验证信息。

public_key <- 'VzUZFW1cQzP08ovr5auZbXQduzE';
data <- fromJSON(paste('http://127.0.0.1:3000', "/output/data?public_key=", public_key, sep=""),flatten=TRUE)
Run Code Online (Sandbox Code Playgroud)

fromJSON或其他包装可能吗?

json r http-headers shiny

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

有没有办法在不下载Python中的url内容的情况下获取响应头?

我正在使用Python编写一个管理器,它会在某些条件下下载一些文件.问题是要对响应头执行条件.

以下示例是我现在正在做的简化版本.我首先下载该文件,然后测试其包含在标题中的名称是否在先前定义的列表中.

我想知道是否有办法在不下载内容的情况下获得响应,这在我的实际案例中需要花费大量时间.

import requests

# The line below download the file, but I'd like not to do it.
req = requests.get('http://some_url.com/some_file')

# Get the name of the file to test if it's the right file.
r = re.search(r'filename="(.*)";', req.headers['Content-Disposition'])

filename = None

# If the filename is present in the headers...
if r.groups():
    filename = r.groups()[0]

# If the filename is in an authorized list...
if filename in [...]:
   # Process req.content
Run Code Online (Sandbox Code Playgroud)

python response request http-headers python-requests

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

如何在http_build_query中将空间强制为%20?

我遇到一个问题,API端点期望%20替换一个空格就需要其中一个参数。例:

$params = array(
           'client_id' => self::$client_id,
           'scope' => 'api%20offline_access', //here I need the %20 sign
           'response_type' => 'code',
           'redirect_uri' => self::$redirect_uri
          );
Run Code Online (Sandbox Code Playgroud)

如果我写'scope' => 'api offline_access'了空格,则+在将其传递给http_build_query()函数时会转换为符号。

如果我像上面一样保持它,则该标志被“包裹”了更多的标志

我试图在功能手册中找到此答案,但是没有运气

php json http-headers

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

http响应中缺少Angular2 JWT Authorization标头(已添加CORS支持)

我正在尝试使用JWT(Json Web Token)进行授权.在前端我在后端Spring REST api上使用Angular2.我在后端添加了CORS过滤器.

在http请求中,我发送用户名和密码,并在响应的"授权"标题中期望令牌.当我使用Postman时,一切正常,我收到所有标题,包括'授权'.

此外,当我在Chrome控制台中记录流量时(在通过表单进行用户登录时)"响应"中存在"授权"标题,因此很明显它会返回到浏览器.但是当我在我的角度应用程序中列出标题时,数组中只有几个标题:

   // auth.service.ts

   login(username, password): Observable<boolean> {

    // call remote service to authenticate user        
     return this.http.post(this.authUrl, JSON.stringify({ username: username, password: password }))
        .map((response: Response) => {

            console.log("Authorization header: " + response.headers.get('Authorization'));
            console.log("all headers: " + response.headers.keys());

            // TODO - login successful if there's a jwt token in the response

        });     
} 
Run Code Online (Sandbox Code Playgroud)

这两个控制台输出的结果是:

 Authorization header: null 

 all headers: Pragma,Cache-Control,Expires
Run Code Online (Sandbox Code Playgroud)

以下是Google Chrome控制台的屏幕截图,您可以在其中看到客户端上存在所有需要的标头:

Chrome控制台

服务器端令牌生成(Spring Boot):

public void addAuthentication(HttpServletResponse response, String username) throws UnsupportedEncodingException {
    // Token generation …
Run Code Online (Sandbox Code Playgroud)

spring http http-headers cors angular

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