IOS开发网络通信NSSession.docx
- 文档编号:2523660
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:39
- 大小:25.73KB
IOS开发网络通信NSSession.docx
《IOS开发网络通信NSSession.docx》由会员分享,可在线阅读,更多相关《IOS开发网络通信NSSession.docx(39页珍藏版)》请在冰点文库上搜索。
IOS开发网络通信NSSession
IOS开发--网络通信NSSession
IOS使用NSXMLParser解析XML
JSON转OC对象
[代码]打开登录界面
publicvoidopenLoginJsp(){
StringuserName="";
StringuserPass="";
//从cookie中提取出需要的信息并进行解码,setAttr,填写在登录界面上
if(getCookieObject("rccbName")!
=null
&&getCookieObject("rccbPass")!
=null){
try{
userName=Decoder.decode(getCookieObject("rccbName")
.getValue(),"utf-8");
userPass=Decoder.decode(getCookieObject("rccbPass")
.getValue(),"utf-8");
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
}
NSBlockOperation多线程加载图片Demo
setAttr("userName",userName);
setAttr("userPass",userPass);
render("/qiantai/login.jsp");
}
[代码]登录功能
NSThread并发,线程状态测试Demo
publicvoidlogin(){
StringloginName=getPara("member.loginName");
Stringpass=getPara("member.pass");
//往cookie里存需要将编码方式设为UTF-8
try{
loginName=Encoder.encode(loginName,"utf-8");
pass=Encoder.encode(pass,"utf-8");
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
svn小冲突解决笔记
tableview全面自定制
/*
*cookie设置
*
*一、用户选择保存帐号密码
*1、用户第一次选择保存,正常保存
*2、用户非第一次选择保存,说明已经有相同名字的cookie,对比帐号密码是否一致
*①一致的话不进行操作②不一致的话重新放置cookie
*二、用户选择不保存
*1、如果曾经存过cookie,则清空
*2、如果没有存过cookie,不用操作
*(直接将cookie值设为“”可以避免上面的判断,同时也可以避免获取cookie发生空指针异常)
*/
//如果用户选择保存十天帐号密码,
if(getPara("autoLogin")!
=null&&getPara("autoLogin").equals("1")){//分两种情况,第一次放置cookie和不是第一次放置
System.out.println("选择了保存账号密码");
if(getCookieObject("rccbName")==null
||getCookieObject("rccbPass")==null){//第一次放置cookie
System.out.println("第一次放置cookie");
setCookie("rccbName",loginName,86400);
setCookie("rccbPass",pass,86400);
}else{//非第一次放置cookie
if(!
loginName.equals(getCookieObject("rccbName").getValue())
&&!
pass.equals(getCookieObject("rccbPass").getValue())){//如果帐号有变化,则重新放置cookie
System.out.println("帐号有变化,则重新放置cookie");
setCookie("rccbName",loginName,86400);
setCookie("rccbPass",pass,86400);
}//否则,不进行操作
else{
System.out.println("帐号没变化,不进行操作");
}
}
XML解析全国各大城市首字母一样分区显示到tableVi...
}else{//没有选择保存账号密码
System.out.println("没有选择保存账号密码");
setCookie("rccbName","",0);
setCookie("rccbPass","",0);
}
Memberm=Member.me.login(loginName,pass);
if(m!
=null){
setSessionAttr("m",m);
redirect("/");
}else{
keepModel(Member.class);
setAttr("loginFail","帐号或者密码错误");
render("/qiantai/login.jsp");
}
}
仿豆果美食tableview展开和收缩
[代码][Java]代码
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
//初始化
Scannerin=newScanner(System.in);
//请输入投币金额
System.out.println("请投币");
intamount=in.nextInt();
System.out.println(amount);
System.out.println(amount>=10);
if(amount>=10)
{
//打印车票
System.out.println("************");
System.out.println("*城际轨道交通*");
System.out.println("*票价:
10元*");
System.out.println("*2016.03.24*");
System.out.println("************");
System.out.println("找零"+(amount-10));
}
//提示金额不足
else
{
System.out.println("投币金额不足");
System.out.println("请补足票价");
}
}
}
while(LED3==1);
P1DIR|=0x10;
TxData[2]='4';
TxData[3]='3';
TxData[4]='0';
TxData[5]='0';
TxData[6]='1';
UartSendString(TxData,8);
}
}
if(RxData[4]=='4')
{//写LED4
if(RxData[6]=='1')
{
LED4=ON;
P0DIR&=0xFD;//设置LED4为输入口,读LED4数据,判断是否打开成功[代码][GoogleGo]代码
packagemain
import(
"io/ioutil"
"net/http"
"net/"
"fmt"
"encoding/json"
)
//----------------------------------
//黄金数据调用示例代码-聚合数据
//在线接口文档:
www/docs/29
//----------------------------------
constAPPKEY="*******************"//您申请的APPKEY
funcmain(){
//1.上海黄金交易所
Request1()
//2.上海期货交易所
Request2()
//3.银行账户黄金
Request3()
}
//1.上海黄金交易所
funcRequest1(){
//请求地址
juhe:
="web:
8080/finance/gold/shgold"
//初始化参数
param:
=.Values{}
//配置请求参数,方法内部已处理encode问题,中文参数可以直接传参
param.Set("key",APPKEY)//APPKey
param.Set("v","")//JSON格式版本(0或1)默认为0
//发送请求
data,err:
=Get(juhe,param)
iferr!
=nil{
fmt.Errorf("请求失败,错误信息:
\r\n%v",err)
}else{
varnetReturnmap[string]interface{}
json.Unmarshal(data,&netReturn)
ifnetReturn["error_code"].(float64)==0{
fmt.Printf("接口返回result字段是:
\r\n%v",netReturn["result"])
}
}
}
//2.上海期货交易所
funcRequest2(){
//请求地址
juhe:
="web:
8080/finance/gold/shfuture"
//初始化参数
param:
=.Values{}
//配置请求参数,方法内部已处理encode问题,中文参数可以直接传参
param.Set("key",APPKEY)//APPKey
param.Set("v","")//JSON格式版本(0或1)默认为0
//发送请求
data,err:
=Get(juhe,param)
iferr!
=nil{
fmt.Errorf("请求失败,错误信息:
\r\n%v",err)
}else{
varnetReturnmap[string]interface{}
json.Unmarshal(data,&netReturn)
ifnetReturn["error_code"].(float64)==0{
fmt.Printf("接口返回result字段是:
\r\n%v",netReturn["result"])
}
}
}
//3.银行账户黄金
funcRequest3(){
//请求地址
juhe:
="web:
8080/finance/gold/bankgold"
//初始化参数
param:
=.Values{}
//配置请求参数,方法内部已处理encode问题,中文参数可以直接传参
param.Set("key",APPKEY)//APPKey
//发送请求
data,err:
=Get(juhe,param)
iferr!
=nil{
fmt.Errorf("请求失败,错误信息:
\r\n%v",err)
}else{
varnetReturnmap[string]interface{}
json.Unmarshal(data,&netReturn)
ifnetReturn["error_code"].(float64)==0{
fmt.Printf("接口返回result字段是:
\r\n%v",netReturn["result"])
}
}
}
//get网络请求
funcGet(apistring,params.Values)(rs[]byte,errerror){
var*.
err=.Parse(api)
iferr!
=nil{
fmt.Printf("解析错误:
\r\n%v",err)
returnnil,err
}
//如果参数中有中文参数,这个方法会进行Encode
.RawQuery=params.Encode()
resp,err:
=http.Get(.String())
iferr!
=nil{
fmt.Println("err:
",err)
returnnil,err
}
deferresp.Body.Close()
returnioutil.ReadAll(resp.Body)
}
//post网络请求,params是.Values类型
funcPost(apistring,params.Values)(rs[]byte,errerror){
resp,err:
=http.PostForm(api,params)
iferr!
=nil{
returnnil,err
}
deferresp.Body.Close()
returnioutil.ReadAll(resp.Body)
}
代码描述:
基于GO的黄金数据接口调用代码实例
关联数据:
黄金数据
[代码][C#]代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Net;
usingSystem.IO;
usingXfrog.Net;
usingSystem.Diagnostics;
usingSystem.Web;
//----------------------------------
//黄金数据调用示例代码-聚合数据
//在线接口文档:
www/docs/29
//代码中JsonObject类下载地址:
/download/gcm3206021155665/7458439
//----------------------------------
namespaceConsoleAPI
{
classProgram
{
staticvoidMain(string[]args)
{
stringappkey="*******************";//配置您申请的appkey
//1.上海黄金交易所
string1="web:
8080/finance/gold/shgold";
varparameters1=newDictionary
parameters1.Add("key",appkey);//你申请的key
parameters1.Add("v","");//JSON格式版本(0或1)默认为0
stringresult1=sendPost(1,parameters1,"get");
JsonObjectnewObj1=newJsonObject(result1);
StringerrorCode1=newObj1["error_code"].Value;
if(errorCode1=="0")
{
Debug.WriteLine("成功");
Debug.WriteLine(newObj1);
}
else
{
//Debug.WriteLine("失败");
Debug.WriteLine(newObj1["error_code"].Value+":
"+newObj1["reason"].Value);
}
//2.上海期货交易所
string2="web:
8080/finance/gold/shfuture";
varparameters2=newDictionary
parameters2.Add("key",appkey);//你申请的key
parameters2.Add("v","");//JSON格式版本(0或1)默认为0
stringresult2=sendPost(2,parameters2,"get");
JsonObjectnewObj2=newJsonObject(result2);
StringerrorCode2=newObj2["error_code"].Value;
if(errorCode2=="0")
{
Debug.WriteLine("成功");
Debug.WriteLine(newObj2);
}
else
{
//Debug.WriteLine("失败");
Debug.WriteLine(newObj2["error_code"].Value+":
"+newObj2["reason"].Value);
}
//3.银行账户黄金
string3="web:
8080/finance/gold/bankgold";
varparameters3=newDictionary
parameters3.Add("key",appkey);//你申请的key
stringresult3=sendPost(3,parameters3,"get");
JsonObjectnewObj3=newJsonObject(result3);
StringerrorCode3=newObj3["error_code"].Value;
if(errorCode3=="0")
{
Debug.WriteLine("成功");
Debug.WriteLine(newObj3);
}
else
{
//Debug.WriteLine("失败");
Debug.WriteLine(newObj3["error_code"].Value+":
"+newObj3["reason"].Value);
}
}
///
///Http(GET/POST)
///
///
///
///
///
staticstringsendPost(string,IDictionary
{
if(method.ToLower()=="post")
{
HttpWebRequestreq=null;
HttpWebResponsersp=null;
System.IO.StreamreqStream=null;
try
{
req=(HttpWebRequest)WebRequest.Create();
req.Method=method;
req.KeepAlive=false;
req.ProtocolVersion=HttpVersion.Version10;
req.Timeout=5000;
req.ContentType="application/x-www-form-encoded;charset=utf-8";
byte[]postData=Encoding.UTF8.GetBytes(BuildQuery(parameters,"utf8"));
reqStream=req.GetRequestStream();
reqStream.Write(postData,0,postData.Length);
rsp=(HttpWebResponse)req.GetResponse();
Encodingencoding=Encoding.GetEncoding(rsp.CharacterSet);
returnGetResponseAsString(rsp,encoding);
}
catch(Exceptionex)
{
returnex.Message;
}
finally
{
if(reqStream!
=null)reqStream.Close();
if(rsp!
=null)rsp.Close();
}
}
else
{
//创建请求
HttpWebRequestrequest=(HttpWebRequest)WebRequest.Create(+"?
"+BuildQuery(parameters,"utf8"));
//GET请求
request.Method="GET";
request.ReadWriteTimeout=5000;
request.ContentType="text/html;charset=UTF-8";
HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();
StreammyResponseStream=response.GetResponseStream();
StreamReadermyStreamReader=newStreamReader(myResponseStream,Encoding.GetEncoding("utf-8"));
//返回内容
stringretString=myStreamReader.ReadToEnd();
returnretString;
}
}
///
///组装普通文本请求参数。
///
///
///
staticstringBuildQuery(IDictionary
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IOS 开发 网络 通信 NSSession