- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在探索 Strava API ( http://strava.github.io/api/v3 ) 与 GTMHTTPFetcher 的使用 2 天后,我现在完全无法将 .gpx 文件上传到我的帐户,所以我决定在这里寻求答案。我成功接收并存储了一个具有必要的“view_private,write”权限的访问 token ,服务器正在响应请求,我设法接收和更改存储在我的帐户中的数据。尝试上传 .gpx (xml) 文件时出现错误(错误请求):
The operation couldn’t be completed. (com.google.HTTPStatus error 400.)
对于构建 HTTP POST 请求显然有些事情我不明白,我尝试了不同的方法来试验 http header 中的值,在“/uploads?”之后更改了获取 url。使用 file=... 等无济于事。对于身份验证,我使用 GTMOAuth2Authentication。
我的代码:
- (void) uploadToStrava {
NSString *filePath = @"somefilepath.gpx";
NSURL *url = [NSURL URLWithString:@"https://www.strava.com/api/v3/uploads?data_type=gpx"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[NSData dataWithContentsOfFile:filePath]];
[self.signedStravaAuth authorizeRequest:request];
GTMHTTPFetcher* myStravaFetcher = [GTMHTTPFetcher fetcherWithRequest:request];
[myStravaFetcher beginFetchWithDelegate:self
didFinishSelector:@selector(myStravaFetcher:finishedWithData:error:)];
self.currentFetcher = myStravaFetcher;
}
- (void) myStravaFetcher:(GTMHTTPFetcher *)fetcher finishedWithData:(NSData *)data error:(NSError *) error {
if (error != nil) {
[self handleErrorWithText:nil];
NSLog(@"error %@", [error localizedDescription]);
} else {
NSString *info = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSDictionary *result = [self.jsonParser objectWithString:info];
NSLog(@"Strava response: %@", result);
}
}
API 文档附带以下 CURL 示例请求:
$ curl -X POST https://www.strava.com/api/v3/uploads \
-H "Authorization: Bearer 83ebeabdec09f6670863766f792ead24d61fe3f9" \
-F activity_type=ride \
-F file=@test.fit \
-F data_type=fit
相关问题:Using AFNetworking to POST a file asynchronously with upload progress to Strava V3 API
最佳答案
如果您收到 HTTP 400,则表示 Strava V3 API 拒绝了您的请求 - 通常来自上传端点的 400 包含有关错误信息的响应信息。我将从检查错误响应的响应主体开始。我不熟悉 GTMHTTPFetcher,但您应该能够调试和观察响应主体,或者您可以使用像 Charles Proxy 这样的工具调试请求和响应。尝试比较 curl
请求和来自您的 Objective-C 代码的请求。
Strava V3 Uploads API 期望上传的文件部分在 file
参数中——同样,由于不熟悉 GTMHTTPFetcher,我不能确定它在做什么,但它您似乎没有指定文件数据是名为 file
的 multipart/form-data
部分的一部分。
远景:您似乎也在混合 POST 正文和查询字符串参数,因此您的 data_type
参数可能无法通过。我会保持一致并将所有参数放在 POST 正文中。
关于ios - 在 Objective-c 中使用 GTMHTTPFetcher POST 将 GPX 文件上传到 Strava API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30534550/
我有一个 ASP .NET Core MVC 网站,用于健身等。我正在努力做到这一点,以便人们可以将他们在我网站上的帐户与他们的 Strava 帐户相关联。我已经阅读并重新阅读了 Strava API
我在 Strava 上创建了一个应用程序。使用 read,activity:read,activity:read_all,read_all 权限在我的帐户上授权我的应用。 我不想轮询他们的 API 以
有谁知道用户在 Strava 上发布事件后如何获得完成路线图图像。我已阅读 Strava API 文档,但尚未找到 我用 https://strava.github.io/api/v3/activit
我正在尝试通过我的应用程序将我的锻炼上传到 strava & 当我发送我的请求时它返回我并显示错误 400 和这个: (String?) $R0 = "{\"message\":\"Bad Reque
我正在将 Strava 添加到 iOS 应用程序,Strava 使用 Auth2.0,每个 Strava API 调用都需要一个 token 来证明用户已通过身份验证并且应用程序有权访问 API。从用
我在使用 Strava API 时有点乱,但是当我想执行初始身份验证时,我总是会收到 404 错误。我对此很陌生,因此非常感谢您的帮助。 @Override
我试图使用 python 从 strava 的 api 获取分段工作,但每次我对任何特定分段发出请求时,响应都是默认设置的 30 个分段的列表。我没有运气改变标题中的分页参数。有什么想法吗? 谢谢,明
起亚, 我从 Strava 导出了我所有的 GPX 文件,所以我可以对它们进行一些分析,但我一直在试图弄清楚每个文件用于什么类型的事件。 例如,我的文件看起来像这样,其中 元素似乎定义了事件类型。
我希望人们使用 Strava 帐户登录(strava 是一个骑行/运行平台) Firebase 有一些默认的身份验证登录提供程序,如 Google、twitter 等,但没有 Strava。有没有其他
我正在尝试使用 Oauth2 连接到 strava api,我的应用程序的注册需要一个授权回调域,例如:http://testapp.com但我正在本地测试这个,我的网址如下:http://local
我正在尝试使用 strava v3 api 获取数据.我对 JS 很陌生。我复制了示例 XMLHttpRequest 代码,但我得到的只是返回了一个空字符串。如果我去链接 manually在浏览器中,
只是想知道是否有人知道 Strava 如何能够在锻炼期间在 iOS 后台运行?我目前正在构建一个基于位置的 iOS 应用程序,它需要在后台继续运行,我有点困惑。 在过去的一个月里,我能够使用 Heal
我在使用用于 iOS 应用程序中的 OAuth2 进程的新 ASWebAuthenticationSession 类时遇到问题。 我想使用此类将我的应用程序与我的 Strava 帐户相关联。我有以下代
我有一个显示通知栏的前台任务,目的是让这个通知栏不可移动。通知的配置是: Notification notification = new NotificationCompat.Builder(this
我正在将 strava api 集成到我的应用程序中。我需要有关授权回调域的帮助,即在 api 注册期间需要帮助,以便在授权后设备浏览器再次打开应用程序以供进一步使用。当我尝试提交 myapp://
我正在尝试在 Flask 项目中使用 Stava API。我看到了以下 stackoverflow 并安装了 swagger_client swagger-codegen 生成 -i https://
UPDATE: The idea behind my attempts so far has been focused on adjusting the iframe container and fi
编辑 - 因为我无法用 Strava 标记此内容,如果您有兴趣,这里是文档 - http://strava.github.io/api/ 我顺利通过了身份验证,并在 response.read 中获得
我想从 iOS 向 Strava 发布事件。 Strava 文档 ( http://strava.github.io/api/v3/uploads/#post-file ) 的 curl 示例如下:
我无法从 Strava 的 api 文档中的 url 访问所有运动员事件(我自己的)。 我能够获得自己的年初至今统计数据: https://www.strava.com/api/v3/athletes
我是一名优秀的程序员,十分优秀!