Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用ASIHttpRequest创建请求,如下所示?

如何使用ASIHttpRequest创建请求,如下所示?
EN

Stack Overflow用户
提问于 2012-10-16 09:27:18
回答 2查看 406关注 0票数 1

我在做YouTube可恢复上传:https://developers.google.com/youtube/2.0/developers_guide_protocol_resumable_uploads#Sending_a_Resumable_Upload_API_Request

我用ASIHttpRequest创建请求失败,如下所示。如何让它工作?谢谢!任何帮助都将不胜感激!

(1)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
POST /resumable/feeds/api/users/default/uploads HTTP/1.1
Host: uploads.gdata.youtube.com
Authorization: Bearer ACCESS_TOKEN
GData-Version: 2
X-GData-Key: key=adf15ee97731bca89da876c...a8dc
Content-Length: 0
Slug: my_file.mp4

(2)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
POST /resumable/feeds/api/users/default/uploads HTTP/1.1

Host: uploads.gdata.youtube.com

Authorization: Bearer ACCESS_TOKEN
GData-Version: 2
X-GData-Key: key=adf15ee97731bca89da876c...a8dc
Content-Length: 1941255
Slug: my_file.mp4
Content-Type: application/atom+xml; charset=UTF-8

<?xml version="1.0"?>
<entry xmlns="http://www.w3.org/2005/Atom"
  xmlns:media="http://search.yahoo.com/mrss/"
  xmlns:yt="http://gdata.youtube.com/schemas/2007">
  <media:group>
    <media:title type="plain">Bad Wedding Toast</media:title>
    <media:description type="plain">
      I gave a bad toast at my friend's wedding.
    </media:description>
    <media:category
      scheme="http://gdata.youtube.com/schemas/2007/categories.cat">People
    </media:category>
    <media:keywords>toast, wedding</media:keywords>
  </media:group>
</entry>

这是我的(2)代码,请求没有错误地完成了,但是responseData是空的。我不知道为什么!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    NSURL *uploadUrl = [NSURL URLWithString:[NSString stringWithFormat:@"http://uploads.gdata.youtube.com/resumable/feeds/api/users/default/uploads"]];
    ASIFormDataRequest *theRequest = [ASIFormDataRequest requestWithURL:uploadUrl];

    NSString *xmlStr = [NSString stringWithFormat:@"<?xml version=\"1.0\"?>\n"
                        @"<entry xmlns=\"http://www.w3.org/2005/Atom\"\n"
                        @"xmlns:media=\"http://search.yahoo.com/mrss/\"\n"
                        @"xmlns:yt=\"http://gdata.youtube.com/schemas/2007\">\n"
                        @"<media:group>\n"

                        //Title
                        @"<media:title type=\"plain\">%@</media:title>\n"
                        //Description
                        @"<media:description type=\"plain\">\n"
                        @"%@\n"
                        @"</media:description>\n"
                        //Category
                        @"<media:category\n"
                        @"scheme=\"http://gdata.youtube.com/schemas/2007/categories.cat\">Entertainment\n"
                        @"</media:category>\n"
                        //Keywords
                        @"<media:keywords>Camera,PowerCam</media:keywords>\n"

                        @"</media:group>\n"
                        @"</entry>\n",        @"PowerCam.mov",@"description" ];


    [theRequest setTimeOutSeconds:60];
    [theRequest addRequestHeader:@"Authorization"   value:[NSString stringWithFormat:@"Bearer %@",_oauth.accessToken]];
    [theRequest addRequestHeader:@"GData-Version"   value:@"2"];
    [theRequest addRequestHeader:@"X-GData-Key"     value:[NSString stringWithFormat:@"key=%@", YouTuDevkey]];
    [theRequest addRequestHeader:@"Content-Length"  value:[NSString stringWithFormat:@"%d",xmlStr.length]];
    [theRequest addRequestHeader:@"Slug"            value:@"PowerCam.mov"];  
    [theRequest addRequestHeader:@"Content-Type"    value:@"application/atom+xml; charset=UTF-8"];

    [theRequest appendPostData:[xmlStr dataUsingEncoding:NSUTF8StringEncoding]];
    [theRequest setUploadProgressDelegate:self];
    theRequest.delegate = self;
    theRequest.tag = eWSKYouTubeSharerUploadingVideoMetadata;
    self.requestTag = eWSKYouTubeSharerUploadingVideoMetadata;
    self.request = theRequest;
    [[ASIManager manager] addRequest:theRequest];
    [[ASIManager manager] startQueue];
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-17 08:46:27

以下示例为API响应可恢复上传视频元数据请求的示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
HTTP/1.1 200 OK
Location: http://uploads.gdata.youtube.com/resumableupload/AF8GKF...0Glpk0Aw
Date: Fri, 04 Dec 2009 16:14:30 GMT
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Cache-Control: no-cache, no-store, must-revalidate
Content-Length: 0
Content-Type: text/html

代码运行得很好。"Location“url在标题中,而不在正文中,因此responseData为空:)

票数 0
EN

Stack Overflow用户

发布于 2012-10-16 12:48:05

有关如何使用它的信息,请参阅the ASIHTTPRequest how-to。粗略地说,你会得到类似这样的东西:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request addRequestHeader:@"X-GData-Key" value:@"adf15ee97731bca89da876c...a8dc9"];
// add the other special headers as well
NSString *xmlBody = // create the XML data in the body
[request appendPostData:[xmlBody dataUsingEncoding:NSUTF8StringEncoding]];
[request startSynchronous];

假设你想从后台线程做一个同步请求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12911529

复制
相关文章
hanoi塔问题如下图所示_hanoi塔问题最经典的算法
我们先假设在A柱子上只有两个圆盘,不用图我们用大脑想象出来最佳流程就是,现在最小的放在B柱子上面然后把大的放在C上面,最后把B柱子上面的小圆盘放在C柱子上。
全栈程序员站长
2022/11/17
6150
hanoi塔问题如下图所示_hanoi塔问题最经典的算法
在Objective-C中使用ASIHTTPRequest发送HTTP请求并获取HTML内容
在网络爬虫开发中,发送HTTP请求并获取目标网站的HTML内容是一项常见任务。通过发送HTTP请求,我们可以模拟浏览器行为,访问网页并获取其中的数据。这些数据可以用于数据分析、信息收集、自动化测试等多种用途。为了实现这个目标,开发者可以使用各种编程语言和工具来发送HTTP请求,并通过解析响应数据来提取所需的HTML内容。这样,我们就可以轻松地获取网页中的文本、图片、链接等信息,为后续处理和分析提供基础。本文将介绍如何在Objective-C中使用ASIHTTPRequest库来实现这一功能。
小白学大数据
2023/10/17
2630
windows中使用Git如何创建Pull Requests(拉取请求/下载请求)?
Pull Requests用于提出对项目文件的更改,它是一个开始提交讨论的方式,它被经常用于代码审查中。   如果是一个人工作的话,那么Pull Request可能没有太大的帮助,因为可以用学到的git命令来更改、推送到我们的主分支中,而不存在其他的分支。   但是如果在公司项目或者是开源项目这种团队工作的情况下,会有很多分支。 github会知道你已经添加了更改到新的分支中,所以它会智能的建议你启动  Compare & pull request(比较和拉取请求)
黑泽君
2018/10/12
2.1K0
使用 openPDF 创建带目录的文档时候, 使用如下方式, 可以保证目录页码准确
public static void main(String[] args) throws Exception { pdfboxTest5(); } private static void pdfboxTest5() throws DocumentException, IOException { File file = new File("E:\\sss\\test5.pdf"); Document doc = new Document(PageSize.A4); String tempFileN
北漂的我
2022/12/28
8750
C#创建https请求并使用pfx证书
WebRequest req = WebRequest.Create(url);
拓荒者IT
2019/09/26
1.5K0
使用PHP 如何请求 ChatGPT 接口
ChatGPT是一种预先训练的大型语言模型,由OpenAI开发,能够进行高质量的人工智能(AI)对话。它能根据上下文自动生成合理的回答,在许多情况下,用户甚至无法分辨出是人类还是AI在回答问题。
哈德森
2023/04/07
2.3K0
使用PHP 如何请求 ChatGPT 接口
ASIHTTPRequest 一款强大的HTTP包装开源项目
ASIHTTPRequest,是一个直接在CFNetwork上做的开源项目,提供了一个比官方更方便更强大的HTTP网络传输的封装。 特色功能如下: 1,下载的数据直接保存到内存或文件系统里 2,提供直接提交(HTTP POST)文件的API 3,可以直接访问与修改HTTP请求与响应HEADER 4,轻松获取上传与下载的进度信息 5,异步请求与队列,自动管理上传与下载队列管理机 6,认证与授权的支持 7,Cookie 8,请求与响应的GZIP 9,代理请求
EltonZheng
2021/01/26
4160
如何使用HRSDT检测HTTP请求走私
 HTTP请求走私检测工具介绍  HTTP请求走私是一种严重的安全漏洞,攻击者可以利用恶意HTTP请求来绕过安全控制措施并获得未经授权的访问权,然后在目标服务器上执行恶意操作。这款工具的主要目的就是为了帮助广大研究人员在给定的主机上检测HTTP请求走私漏洞。  技术细节  该工具基于Python语言开发,因此我们需要在本地设备上安装并配置好Python 3.x环境。该工具接受的输入参数为一个URL地址,或在文本中提供URL列表作为输入。该工具实现了HRS楼哦对那个检测技术,并且内置的Payload提供了37
FB客服
2023/03/30
1K0
如何使用HRSDT检测HTTP请求走私
如何用利用进行下DDos攻击步骤如下
git clone https://github.com/Ha3MrX/DDos-Attack
知识与交流
2023/09/18
3250
如何用利用进行下DDos攻击步骤如下
如何使用Python创建NetCDF文件
之前介绍过如何使用Python处理NetCDF格式文件,这次介绍一下如何创建NetCDF文件。
MeteoAI
2019/07/24
14.7K1
如何使用 JuiceFS 创建 WebDAV 共享
WebDAV 是一种基于 HTTP 的文件共享协议,最初被设计用于多用户文档协作编辑的场景,也被广泛应用在基于互联网的文件存储、数据同步等网盘类应用场景。
Juicedata
2023/03/08
2.8K0
如何使用 JuiceFS 创建 WebDAV 共享
IIS 7.5 如何配置伪静态,具体方法如下
  1)首先新建一个应用程序池,名称任意,比如:nettest,托管管道模式先暂时设置为集成模式,等下面的一系列设置完成之后再设置成经典模式;
会长君
2023/04/26
1.8K0
axios创建实例对象发送请求
要创建一个Axios实例,您可以使用axios.create()方法。该方法接受一个可选的配置对象作为参数,并返回一个新的Axios实例。
堕落飞鸟
2023/05/19
9750
Vue3中如何使用异步请求?
接上节,我们初步体验了layui-vue的用法。相比其他ui框架,layui-vue的数据结构显得不是非常友好,但是经过数据拼凑也是能够成功运行的。 今天我们就主要介绍下在实际开发中最常用到的前后端接口交互。因为大多数时候前端为了高性能,对于后端接口的调用都会采用异步的方式。那该如何在vue3中使用异步请求渲染页面呢?
PHP开发工程师
2022/06/14
2.1K0
Vue3中如何使用异步请求?
Java HttpClient 如何使用代理IP请求接口
实际场景中,可能会遇到需要使用代理IP请求接口的需求,所以这里给大家分享一下如何通过代理IP请求接口。
跟着飞哥学编程
2022/11/30
8500
如何使用Feign构造多参数的请求
最近经常有人在Spring Cloud中国社区(http://springcloud.cn)QQ群(157525002)里问到该问题。索性整理一下。 本节我们来探讨如何使用Feign构造多参数的请求。
用户1516716
2018/04/02
3.2K0
vue3中如何使用异步请求?
接上节,我们初步体验了layui-vue的用法。相比其他ui框架,layui-vue的数据结构显得不是非常友好,但是经过数据拼凑也是能够成功运行的。
Python研究所
2022/06/17
1.6K0
vue3中如何使用异步请求?
如何使用Java处理HTTP请求和响应?
Java中有许多成熟的HTTP框架可以使用,例如Spring、Netty等。这些框架提供了各种HTTP处理器和工具类,使得HTTP请求和响应处理变得更加容易和高效。下面是一个简单的Java代码示例,演示如何使用Java处理HTTP请求和响应:
用户1289394
2023/08/22
6680
如何使用Java处理HTTP请求和响应?
点击加载更多

相似问题

创建列如下所示

20

如下例所示创建xml并发出请求

13

如何创建火花DF,如下所示

22

如何创建如下所示的表

30

如何创建如下所示的列表?

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文