1、 HANDLE hThread1 = NULL; HANDLE hThread2 = NULL; HANDLE hOut; hOut = GetStdHandle(STD_OUTPUT_HANDLE); WORD att = FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_INTENSITY|BACKGROUND_BLUE; SetConsoleTextAttribute(hOut, att); SMALL_RECT rc = 0, 0, 80, 25; SetConsoleWindowInfo(hOut, true,&rc); SetConsoleTit
2、le(LThe Chat Tools ClearScreen(); InitializeCriticalSection(&gcc); hThread2 = CreateThread(NULL, NULL, sendCustmer, NULL, NULL, NULL); hThread1 = CreateThread(NULL, NULL, displayServer, NULL, NULL, NULL); HANDLE tHandle = hThread1, hThread2; WaitForMultipleObjects(2, tHandle, true, INFINITE); Delete
3、CriticalSection(& WSACleanup(); CloseHandle(hThread1); CloseHandle(hThread2); DWORD WINAPI sendCustmer(LPVOID lpParameter) WSADATA wsaData; WSAStartup(MAKEWORD(2, 2), &wsaData); /向服务器发起请求 sockaddr_in sockAddr; memset(&sockAddr, 0, sizeof(sockAddr); /每个字节都用0填充 sockAddr.sin_family = PF_INET; sockAddr.
4、sin_addr.s_addr = inet_addr(192.168.109.23 /sockAddr.sin_addr.s_addr = htonl(INADDR_ANY); sockAddr.sin_port = htons(1234); char SendBufferMAXBYTE; while (1) SOCKET sock; do sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if (0 != connect(sock, (SOCKADDR*)&sockAddr, sizeof(SOCKADDR) Sleep(1); else
5、break; while (true); memset(SendBuffer, 0, MAXBYTE); gotoxy(0, 21); ClearScreen1();#if 0 for (int j = 0; j 100; +j) printf_s(#endif gets_s (SendBuffer); while ( 0 = strlen(SendBuffer) ); gotoxy(0, g_postion); if (g_postion 20) 代码 Google Go代码 package mainimport (io/ioutilnet/httpnet/fmtencoding/json)
6、 /-/ 黄金数据调用示例代码 聚合数据/ 在线接口文档:www/docs/29const APPKEY = * /您申请的APPKEYfunc main() /1.上海黄金交易所 Request1() /2.上海期货交易所 Request2() /3.银行账户黄金 Request3()/1.上海黄金交易所func Request1() /请求地址 juhe :=web:8080/finance/gold/shgold /初始化参数 param:=.Values /配置请求参数,方法内部已处理encode问题,中文参数可以直接传参 param.Set(key,APPKEY) /APP Keyv
7、,) /JSON格式版本(0或1)默认为0 /发送请求 data,err:=Get(juhe,param) if err!=nil fmt.Errorf(请求失败,错误信息:rn%v,err) else var netReturn mapstringinterface json.Unmarshal(data,&netReturn) if netReturnerror_code.(float64)=0 fmt.Printf(接口返回result字段是:,netReturnresult)/2.上海期货交易所func Request2()8080/finance/gold/shfuture/3.银行
8、账户黄金func Request3()8080/finance/gold/bankgold/ get 网络请求func Get(api string,params .Values)(rsbyte ,err error) var *. ,err=.Parse(api)解析错误: return nil,err /如果参数中有中文参数,这个方法会进行Encode .RawQuery=params.Encode() resp,err:=http.Get(.String() fmt.Println(err: defer resp.Body.Close() return ioutil.ReadAll(re
9、sp.Body)/ post 网络请求 ,params 是.Values类型func Post(api string, params .Values)(rsbyte,err error)=http.PostForm(api, params) return nil ,err defer resp.Body.Close()代码描述:基于GO的黄金数据接口调用代码实例关联数据:黄金数据代码 C#代码 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net;us
10、ing System.IO;using Xfrog.Net;using System.Diagnostics;using System.Web;/ 代码中JsonObject类下载地址:/download/gcm3206021155665/7458439namespace ConsoleAPI class Program static void Main(string args) string appkey = ; /配置您申请的appkey string 1 = var parameters1 = new Dictionary(); parameters1.Add(, appkey);/你申
11、请的key , /JSON格式版本(0或1)默认为0 string result1 = sendPost(1, parameters1, get JsonObject newObj1 = new JsonObject(result1); String errorCode1 = newObj1.Value; if (errorCode1 = 0) Debug.WriteLine(成功 Debug.WriteLine(newObj1); /Debug.WriteLine(失败 Debug.WriteLine(newObj1.Value+:+newObj1reason.Value); string
12、2 = var parameters2 = new Dictionary parameters2.Add( string result2 = sendPost(2, parameters2, JsonObject newObj2 = new JsonObject(result2); String errorCode2 = newObj2 if (errorCode2 = Debug.WriteLine(newObj2); Debug.WriteLine(newObj2+newObj2 string 3 = var parameters3 = new Dictionary parameters3
13、.Add( string result3 = sendPost(3, parameters3, JsonObject newObj3 = new JsonObject(result3); String errorCode3 = newObj3 if (errorCode3 = Debug.WriteLine(newObj3); Debug.WriteLine(newObj3+newObj3 / / Http (GET/POST)/summaryparam name=请求parameters请求参数method请求方法响应内容 static string sendPost(string , ID
14、ictionary parameters, string method) if (method.ToLower() = post HttpWebRequest req = null; HttpWebResponse rsp = null; System.IO.Stream reqStream = null; try req = (HttpWebRequest)WebRequest.Create(); req.Method = method; req.KeepAlive = false; req.ProtocolVersion = HttpVersion.Version10; req.Timeo
15、ut = 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(); Encoding encoding = Encoding.Get
16、Encoding(rsp.CharacterSet); return GetResponseAsString(rsp, encoding); catch (Exception ex) return ex.Message; finally if (reqStream != null) reqStream.Close(); if (rsp != null) rsp.Close(); /创建请求 HttpWebRequest request = (HttpWebRequest)WebRequest.Create( + ? + BuildQuery(parameters, /GET请求 request
17、.Method = GET request.ReadWriteTimeout = 5000; request.ContentType = text/html;charset=UTF-8 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncodin
18、g(utf-8 /返回内容 string retString = myStreamReader.ReadToEnd(); return retString; / 组装普通文本请求参数。Key-Value形式请求参数字典编码后的请求数据 static string BuildQuery(IDictionary parameters, string encode) StringBuilder postData = new StringBuilder(); bool hasParam = false; IEnumeratorKeyValuePair dem = parameters.GetEnume
19、rator(); while (dem.MoveNext() string name = dem.Current.Key; string value = dem.Current.Value; / 忽略参数名或参数值为空的参数 if (!string.IsNullOrEmpty(name)/& !string.IsNullOrEmpty(value) if (hasParam) postData.Append( postData.Append(name); if (encode = gb2312 postData.Append(HttpUtility.Encode(value, Encoding
20、.GetEncoding(); else if (encode = postData.Append(HttpUtility.Encode(value, Encoding.UTF8); postData.Append(value); hasParam = true; return postData.ToString(); / 把响应流转换为文本。rsp响应流对象encoding编码方式响应文本 static string GetResponseAsString(HttpWebResponse rsp, Encoding encoding) System.IO.Stream stream = null; StreamReader reader = null; / 以字符流的方式读
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1