我正在尝试加载一个需要标头中的令牌的视频文件。我在 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) 我正在尝试处理响应标头,在某些特定情况下,当刷新令牌从后端发送时,用新令牌替换标头中的旧令牌并再次发送请求。经过数小时的研究,我没有找到任何适用于 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)
任何帮助表示赞赏。
我正在尝试从 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 。任何计划将不胜感激。
我有一个端点,它返回一个 csv 数据集,该数据集将使用保存saveas,Blob\nAngularJS 前端工作正常,而 Angular 8 则很困难。\n这是我的 Angular 8 实现
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 });\nRun 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”}
我怀疑这是因为HttpClient将响应视为而JSON不是"text/csv"\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) 我正在从 Java Jax-Rs API 迁移到 ASP.NET。我有传递到 API 的自定义标头参数。
我找不到在 ASP.NET 中执行相同操作的方法。
这是我到目前为止所拥有的:
[HttpPost]
public String login()
{
return "works";
}
Run Code Online (Sandbox Code Playgroud)
我搜索了我找到的每个教程,但找不到任何提及这一点的内容。
我在 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) 当用户的浏览器积累了太多 cookie 时,我的 Phoenix 应用程序开始对某些页面请求给出 431 错误响应。(我们的网站是一个非常大的域的子域,许多 cookie 是在顶级域上全局设置的。)如何配置我的应用程序以允许更长的标头以避免此错误?
我访问过其他相关帖子,但仍然无法找到解决我的情况的方法......
我正在从站点 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 进行类似的获取。使用相同的代码。
知道问题出在哪里吗?非常感谢!西蒙
当网页移动到新位置时,如何显示移动的网页并在Django中返回301永久重定向HTTP响应状态代码?
我有一个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)
谢谢你的帮助.这让我整日疯狂!
http-headers ×10
angular ×2
c# ×2
angular7 ×1
asp.net-mvc ×1
avasset ×1
avplayer ×1
cors ×1
django ×1
download ×1
elixir ×1
fetch ×1
forms ×1
http ×1
http-caching ×1
http-get ×1
httpclient ×1
hyperlink ×1
ios ×1
jax-rs ×1
objective-c ×1
php ×1
python ×1
reactjs ×1
redirect ×1