标签: http-headers

为 AVURLAssets 设置 HTTP 标头字段

我正在尝试加载一个需要标头中的令牌的视频文件。我在 Stackverflow 上了解到,通过查看以下问题,这可能是可能的。问题是我不相信 AVURLAssetHTTPHeaderFieldsKey 是公开的,或者我错误地编写了资产变量。我想做的是将令牌添加到标头中,以便 AVPlayer 加载视频文件。到目前为止,这是我的代码,它只显示播放器,但不加载视频,我猜测是因为我的标题设置不正确:

NSURL *videoURL = [NSURL URLWithString:cell.media[@"redirectionUrl"]];

        NSMutableDictionary * headers = [NSMutableDictionary dictionary];
        [headers setObject:[CMUser currentUser].token forKey:@"Authorization"];

        AVURLAsset *asset = [AVURLAsset URLAssetWithURL:videoURL options:@{@"AVURLAssetHTTPHeaderFieldsKey" : headers}];


        AVPlayerItem * item = [AVPlayerItem playerItemWithAsset:asset];

        AVPlayer *player = [[AVPlayer alloc] initWithPlayerItem:item];

        AVPlayerViewController *playerViewController = [AVPlayerViewController new];

        playerViewController.player = player;

        playerViewController.modalPresentationStyle = UIModalPresentationOverFullScreen;

        [self presentViewController:playerViewController animated:YES completion:nil];  
Run Code Online (Sandbox Code Playgroud)

objective-c http-headers ios avplayer avasset

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

Angular 7拦截器更改标头并再次重试请求

我正在尝试处理响应标头,在某些特定情况下,当刷新令牌从后端发送时,用新令牌替换标头中的旧令牌并再次发送请求。经过数小时的研究,我没有找到任何适用于 Angular 7 的解决方案。我成功拦截请求,但未能成功替换令牌并再次发送相同的请求。

我这样做:

    export class RefreshTokenInterceptor implements HttpInterceptor {
    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        return next.handle(req).pipe(
            tap(event => {

            },
            (error: any) => {
                if (error.status == 401 && error.error.token) {
                    // what to do here
                    // error.error.token is new generated token
                }
            })
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。

http-headers angular-http-interceptors angular angular7

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

以对象作为参数的 HttpWebRequest GET

我正在尝试从 Windows 服务调用 API。API 是用 ASP MVC 编写的。到目前为止,我正在创建如下请求:

private List<T> GetCollectionFromApi<T>(string url)
    {
        List<T> result = new List<T>();

        try
        {
            var request = (HttpWebRequest) WebRequest.Create(url);
            request.Method = "GET";

            using (var response = (HttpWebResponse) request.GetResponse())
            {
                using (var stream = response.GetResponseStream())
                {
                    using (var sr = new StreamReader(stream))
                    {
                        result.AddRange(JsonConvert.DeserializeObject<List<T>>(sr.ReadToEnd()));
                    }
                }
            }
        }
        catch (Exception e)
        {
            // handle err
        }

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

这一切都很好,但现在我需要通过 GET 请求传递一个参数。该参数是一个对象,而不是原始类型。

我是否在查询字符串中逐个属性地解构它?或者我是否以某种方式将其添加到请求标头?我确实计划依赖API 控制器中的DefaultModelBinder 。任何计划将不胜感激。

c# asp.net-mvc http-get httpwebrequest http-headers

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

Angular 8 HttpClient:无法处理文本/csv服务器响应

我有一个端点,它返回一个 csv 数据集,该数据集将使用保存saveasBlob\nAngularJS 前端工作正常,而 Angular 8 则很困难。\n这是我的 Angular 8 实现

\n\n
 const headers = new HttpHeaders({\n            Accept: \'text/csv\',\n        });\n        const options = { headers };\n        this.httpClient\n            .post<ExportCsvSettingsViewDto>(this.appConfigService.buildApiUrl(this.loadPath(batchId)), csvDto, options)\n            .subscribe((fileResult: any) => {\n                const file = new Blob([fileResult], { type: \'text/csv\' });\n                saveAs(file, this.fileName + \'.csv\');\n            });\n
Run Code Online (Sandbox Code Playgroud)\n\n

这会导致以下HttpErrorResponse情况:\n Object {error: SyntaxError: Unexpected token 。在 JSON 中,位于 positio\xe2\x80\xa6,文本:“1.112.373;en-US\n日期时间 UTC;日期本地时间;Bat\xe2\x80\xa6”}

\n\n

我怀疑这是因为HttpClient将响应视为而JSON不是"text/csv"\n那些是请求标头:

\n\n
Connection: keep-alive\nContent-Length: 141\nPragma: no-cache\nCache-Control: no-cache\nAccept: text/csv\nContent-Type: …
Run Code Online (Sandbox Code Playgroud)

httpclient http-headers angular

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

ASP.NET Core API 中接收标头参数

我正在从 Java Jax-Rs API 迁移到 ASP.NET。我有传递到 API 的自定义标头参数。

在此输入图像描述

在此输入图像描述

我找不到在 ASP.NET 中执行相同操作的方法。

这是我到目前为止所拥有的:

  [HttpPost]
  public String login()
  {
     return "works";       
  }
Run Code Online (Sandbox Code Playgroud)

我搜索了我找到的每个教程,但找不到任何提及这一点的内容。

c# jax-rs http-headers asp.net-core-mvc

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

浏览器缓存请求/响应,没有任何 Cache-Control 标头

我在 SPA Web 应用程序和 REST API 后端遇到浏览器缓存问题。我可以在打开开发人员工具的情况下在 Firefox 和 Safari 上重现它:我确保缓存未禁用。

当我进入第一个特定页面,该页面只是从 REST API 获取并显示对象时,我使用“硬刷新”(Mac 上的 CMD+R)来完成此操作。我看到以下标题:

第一个请求:

Host: localhost:5000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:77.0) Gecko/20100101 Firefox/77.0
Accept: application/json, text/plain, */*
Accept-Language: en,it;q=0.7,fr;q=0.3
Accept-Encoding: gzip, deflate, br
Origin: http://localhost:3000
DNT: 1
Connection: keep-alive
Referer: http://localhost:3000/literature/sde5e-zeb98
Cookie: ...
If-Modified-Since: Fri, 10 Jul 2020 16:19:24 GMT
If-None-Match: "2"
Cache-Control: max-age=0
Run Code Online (Sandbox Code Playgroud)

(注意Cache-Control标题,由于硬刷新而自动添加)

回复:

HTTP/1.0 200 OK
Content-Type: application/json
Content-Length: 6128
ETag: "2"
Last-Modified: Fri, 10 Jul 2020 …
Run Code Online (Sandbox Code Playgroud)

http-caching request-headers http-headers

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

当标题长度超过约 4000 个字符时,Elixir Phoenix 应用程序返回 431 错误

当用户的浏览器积累了太多 cookie 时,我的 Phoenix 应用程序开始对某些页面请求给出 431 错误响应。(我们的网站是一个非常大的域的子域,许多 cookie 是在顶级域上全局设置的。)如何配置我的应用程序以允许更长的标头以避免此错误?

elixir http-headers phoenix-framework

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

CORS 问题:对预检请求的响应未通过访问控制检查:它没有 HTTP 正常状态

我访问过其他相关帖子,但仍然无法找到解决我的情况的方法......

我正在从站点 A 向站点 B 请求数据。在我的项目中添加了“Access-Control-Allow-Origin”,但现在我收到此错误:“CORS 策略:对预检请求的响应未通过访问控制检查:它没有 HTTP 正常状态”。

附件中你可以看到我的代码:

useEffect(() => {
fetch(
  "https://raw.githubusercontent.com/simoncriado/Wordle/master/data/db.json",
  {
    headers: {
      "Access-Control-Allow-Origin":
        "https://wordle-react-project.netlify.app/",
      "Access-Control-Allow-Methods": [
        "POST",
        "GET",
        "OPTIONS",
        "DELETE",
        "PUT",
      ],
      "Access-Control-Allow-Headers": [
        "append",
        "delete",
        "entries",
        "foreach",
        "get",
        "has",
        "keys",
        "set",
        "values",
        "Authorization",
      ],
    },
  }
)
  .then((res) => res.json())
  .then((json) => {
    const letters = json.letters;
    setLetters(letters);
  });
Run Code Online (Sandbox Code Playgroud)

}, []);

我正在从另一个组件对相同的 URL 进行类似的获取。使用相同的代码。

知道问题出在哪里吗?非常感谢!西蒙

fetch http-headers cors reactjs

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

如何向访问者显示移动的网页并在Django中返回301重定向HTTP响应状态代码?

当网页移动到新位置时,如何显示移动的网页并在Django中返回301永久重定向HTTP响应状态代码?

python django redirect http http-headers

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

超链接工作 - 带提交按钮的Html表单不工作

我有一个PHP脚本,可以推送标题以允许下载文件.当通过超链接或通过浏览器使用链接调用时,此脚本可以正常工作.这是它的样子:

<a href="download.php?file=test.mp3&properFilename=Testing File">Download</a>
Run Code Online (Sandbox Code Playgroud)

我希望这是一个按钮(sbumit),所以我这样做:

<form action="download.php?file=test.mp3&properFilename=Testing File" method="get">
<input type="submit" value="Download Audio" name="download"/>
</form>
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.当我点击它.它启动下载对话框但文件名为空.它将文件名显示为".mp3"(不带引号)!通过超链接的相同链接显示确切的文件名"测试文件".为什么是这样??以下是有关的PHP代码段:

$filename = '../'.$_GET['file'];
$properFilename = $_GET['properFilename'].'.mp3';

header("Content-Disposition: attachment; filename=\"".basename($properFilename)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename");
exit();   
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.这让我整日疯狂!

php forms download hyperlink http-headers

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