如何从NSUrlSession返回NSHttpUrlResponse状态代码。 我对这种语言很陌生。所以,如果还有其他更好的做法请告诉我。我的代码就在下面。
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="url" value="${database.url}"/>
<property name="driverClassName" value="${database.driver}" />
<property name="username" value="${database.user}" />
<property name="password" value="${database.password}" />
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="typeAliasesPackage" value="com.company.model" />
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.company.mapper" />
</bean>
答案 0 :(得分:3)
这里<label for="frmentermemorableinformation1:strEnterMemorableInformation_memInfo1">Character 1 </label>
是一个异步任务,即它将在另一个线程(主线程除外)中调用,当你从服务器得到响应时,它的闭包将被调用。
所以你在这里做的是你试图返回在主线程中调用的session.dataTaskWithRequest
,即它会在你得到任何回复之前返回。
您应该使用完成处理程序:
responseCode
使用此功能如下:
func responseCode(completion: (statusCode:Int) -> ()){
if Reachability.isConnectedToNetwork() == true {
let url = NSURL(string: baseUrl)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request,completionHandler: {(data, response, error) -> Void in
print("Error\(error)")
if let httpResponse = response as? NSHTTPURLResponse {
print("HttpReponse\(httpResponse.statusCode)")
// Get a status code and assign it in a variable
completion(statusCode: httpResponse.statusCode)
}
})
task.resume()
}
}