gpt4 book ai didi

ios - 如何从 URL 中删除查询(用于 GET 参数)?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:49:08 24 4
gpt4 key购买 nike

我正在构建一个小型 REST 服务来授权用户访问我的应用。

有一次,我用来授权用户的 UIWebView 将转到 https://myautholink.com/login.php .此页面发送带有授权 token 的 JSON 响应。关于这个页面的事情是它通过我的授权表格通过 GET 接收一些数据。我无法使用 PHP session ,因为您通过以下方式到达此页面:

header("location:https://myautholink.com/login.php?user_id=1&machine_id=machine_id&machine_name=machine_name&app_id=app_id");

由于 header 函数发送 header ,我不能同时执行 session_start();

我可以使用委托(delegate)方法毫无问题地获取 UIWebView 的请求 URL:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSURLRequest *request = [webView request];
NSLog(@"%@", [[request URL] relativeString]);
if([[[request URL] absoluteString] isEqualToString:SPAtajosLoginLink])
{
//Store auth token and dismiss auth web view.
}
}

问题是没有一个 NSURL 方法似乎没有返回没有参数的“干净”链接。我查看了所有与 NSURL url-string 相关的方法:

- (NSString *)absoluteString;
- (NSString *)relativeString; // The relative portion of a URL. If baseURL is nil, or if the receiver is itself absolute, this is the same as absoluteString

但是 absoluteString 始终是带有 GET 参数的完整 URL,而 relativeString 始终为 nil。

我正为此苦恼,似乎找不到解决方案。任何帮助将不胜感激。

最佳答案

与其乱搞你自己的字符串操作,不如交给 NSURLComponents:

NSURLComponents *components = [NSURLComponents componentsWithURL:url];
components.query = nil; // remove the query
components.fragments = nil; // probably want to strip this too for good measure
url = [components URL];

在 iOS 6 及更早版本上,您可以引入 KSURLComponents达到相同的结果。

关于ios - 如何从 URL 中删除查询(用于 GET 参数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19349787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com