我在我的swift应用程序中使用Moya进行网络请求。
我能够获得请求和映射结果使用Moya-Object Mapper。
我以前使用过alamofire,我熟悉如何进行post,获取请求和阅读响应头。
然而,我似乎无法理解我怎么能在莫亚也这样做。
我确实浏览了文档,但它没有说明任何关于读取响应头的内容。
有没有任何例子或教程,我可以遵循如何做一个HTTP身份验证和读取响应头。以及如何发出post请求并将参数作为字段参数或json主体发送。
我已经看过Moya的例子了。
任何帮助都将不胜感激。谢谢。
null
switch result {
case let .success(moyaResponse):
if(moyaResponse.statusCode == 200) {
let response = moyaResponse.response
let responseHeaderDictionary = response?.allHeaderFields
}
}
如果有人仍然对使用Moya时如何获取url请求对象感兴趣,下面是另一个实现:
extension NetworkApiService {
public var urlRequest: URLRequest {
let defaultURL: URL
if path.isEmpty {
defaultURL = baseURL
} else {
defaultURL = baseURL.appendingPathComponent(path)
}
let endpoint = MoyaProvider.defaultEndpointMapping(for: self)
do {
return try endpoint.urlRequest()
} catch {
return URLRequest(url: defaultURL)
}
}
}
其中
请注意,返回的实例与Moya's engine调用的
Moya中的响应头实际上目前相当困难。这是莫亚密码里一个不受欢迎的老掉牙。我不知道他们为什么会轻视它。
我打开一个相关问题指出:莫亚头
并做一些更改感谢一个拉请求:Moya header PR
这是我的个人代码的一个示例,我在其中强制传送响应以获得对标头的访问:
class GetTokenRequest {
private let requestService = AuthorizedRequest()
func request() -> Observable<AuthorizedResult<GetTokenEntityResult>> {
return Observable.deferred { [weak self] in
guard let wself = self else {
return Observable.empty()
}
let req = wself.requestService.makeRawRequest { userId in
let obj = GetTokenEntity(lang: currentLanguage(), userId: userId)
return MtxAPI.getToken(obj)
}
.shareReplay(1)
return req.map { result in
switch result {
case .success(let response):
let urlResponse = response.response as! HTTPURLResponse
guard let token = urlResponse.allHeaderFields["Token"] as? String else {
return AuthorizedResult.fail(RequestError.technical)
}
return AuthorizedResult.success(GetTokenEntityResult(token: token))
case .fail(let error): return AuthorizedResult.fail(error)
}
}
}
}
}
我使用的是RxSwift,但主要内容是:
let urlResponse = response.response as! HTTPURLResponse
您可以在获得响应(即
我建议您跟踪我提出的问题,知道它何时会在下一个版本中实现,下一个版本将包含这个
好处:如果您在项目中使用SwiftLint,您可以使用
guard let resp = response.response as? HTTPURLResponse
问题内容: 我是Node开发的新手,我正在尝试使用具有JSON响应的RESTful协议进行服务器端API调用。我已经阅读了API文档和本SO帖子。 我试图从轨道总线中提取的API并以JSON输出返回数据。我对如何使用实际URL中的所有参数和选项发出HTTP GET请求感到困惑。甚至可以通过浏览器或使用“ curl”命令来访问API及其响应。http://developer.cumtd.com/ap
我想使用响应头来确定是否获得响应正文,场景如下,我需要确定响应头中的会话是否过期,以确定是否继续下载文件。如果会话过期,只需取消下载。 我看了看OKHTTP的拦截器,觉得它不符合我的要求。
问题内容: 我正在尝试寻找在Android中发出USSD请求的方法。我找到了-http://commandus.com/blog/?p=58。我将所有需要的文件添加到我的项目中。 USSDDumbExtendedNetworkService.java: 表现: BootReceiver.java: 因此,现在该服务在启动完成后启动。 我的问题是我如何发送USSD请求并获得服务响应?谢谢!) 问题答
问题内容: 所以这是我的问题,我正在使用AJAX(jQuery)将表单发布到,但是页面实际上需要回显诸如或的响应。我不确定如何从中获取响应并将其存储为变量… 这是我到目前为止的代码: 我还需要在json中回显响应吗?还是纯文本会好? 抱歉,这听起来像是一个愚蠢的问题,这是我第一次在Ajax中进行此类操作。 PS:如何在上述代码中命名POST请求? 问题答案: 实际上,这是服务器上所需的全部内容。
我想问一下在执行查询时如何从PostgreSQL获得消息响应。 来自PostgreSQL的消息响应我的意思是这样的,例如: null
我的问题是我如何发送USSD请求并得到服务响应?(谢谢!)