1. 程式人生 > >聚合資料常用快遞介面程式碼

聚合資料常用快遞介面程式碼



1. ashx程式碼

publicvoid ProcessRequest(HttpContext context)

{

context.Response.ContentType = "text/plain";

string appkey ="";//配置您申請的appkey

//1.常用快遞查詢API

string url1 ="http://v.juhe.cn/exp/index";

var parameters1 =newDictionary<string,string>();

parameters1.Add("com","");//需要查詢的快遞公司編號

parameters1.Add(

"no","");//需要查詢的訂單號

parameters1.Add("key", appkey);//你申請的key

parameters1.Add("dtype","json");//返回資料的格式,xmljson,預設json

string result1 = sendPost(url1,parameters1,"get");

JsonObject newObj1 =newJsonObject(result1);

String errorCode1 =newObj1["error_code"].Value;

if (errorCode1 =="0")

{

context.Response.Write(newObj1);

return;

}

else

{

Console.WriteLine(newObj1["error_code"].Value + ":" + newObj1["reason"].Value);

}

}

publicbool IsReusable

{

get

{

returnfalse;

}

}

///<summary>

/// Http (GET/POST)

///</summary>

///<param name="url">請求URL</param>

///<param name="parameters">請求引數

</param>

///<param name="method">請求方法</param>

///<returns>響應內容</returns>

staticstring sendPost(string url, IDictionary<string,string> parameters,string method)

{

if (method.ToLower()=="post")

{

HttpWebRequest req =null;

HttpWebResponse rsp =null;

System.IO.Stream reqStream =null;

try

{

req = (HttpWebRequest)WebRequest.Create(url);

req.Method = method;

req.KeepAlive = false;

req.ProtocolVersion = HttpVersion.Version10;

req.Timeout = 5000;

req.ContentType = "application/x-www-form-urlencoded;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.GetEncoding(rsp.CharacterSet);

returnGetResponseAsString(rsp, encoding);

}

catch (Exception ex)

{

return ex.Message;

}

finally

{

if (reqStream !=null) reqStream.Close();

if (rsp !=null) rsp.Close();

}

}

else

{

//建立請求

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + "?" +BuildQuery(parameters,"utf8"));

//GET請求

request.Method = "GET";

request.ReadWriteTimeout =5000;

request.ContentType = "text/html;charset=UTF-8";

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Stream myResponseStream =response.GetResponseStream();

StreamReader myStreamReader =newStreamReader(myResponseStream,Encoding.GetEncoding("utf-8"));

//返回內容

string retString =myStreamReader.ReadToEnd();

return retString;

}

}

///<summary>

///組裝普通文字請求引數。

///</summary>

///<param name="parameters">Key-Value形式請求引數字典</param>

///<returns>URL編碼後的請求資料</returns>

staticstring BuildQuery(IDictionary<string,string> parameters,string encode)

{

StringBuilder postData =newStringBuilder();

bool hasParam =false;

IEnumerator<KeyValuePair<string,string>> dem =parameters.GetEnumerator();

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);

postData.Append("=");

if (encode =="gb2312")

{

postData.Append(HttpUtility.UrlEncode(value,Encoding.GetEncoding("gb2312")));

}

elseif (encode =="utf8")

{

postData.Append(HttpUtility.UrlEncode(value,Encoding.UTF8));

}

else

{

postData.Append(value);

}

hasParam = true;

}

}

returnpostData.ToString();

}

///<summary>

///把響應流轉換為文字。

///</summary>

///<param name="rsp">響應流物件</param>

///<param name="encoding">編碼方式</param>

///<returns>響應文字</returns>

staticstring GetResponseAsString(HttpWebResponse rsp, Encoding encoding)

{

System.IO.Stream stream =null;

StreamReader reader =null;

try

{

//以字元流的方式讀取HTTP響應

stream =rsp.GetResponseStream();

reader = newStreamReader(stream, encoding);

return reader.ReadToEnd();

}

finally

{

//釋放資源

if (reader !=null) reader.Close();

if (stream !=null) stream.Close();

if (rsp !=null) rsp.Close();

}

}

2.前臺程式碼

<script>

$(function () {

$.ajax({

type: 'post',

url: '/GetExpress.ashx',

data: "{ }",

success: function (data) {

alert(0);

alert(data);

alert(eval("(" + data +")").reason);

alert(eval("(" + data +")").result.company);

var obj = eval("(" + data + ")").result.list;

//迴圈輸出物流資訊

for(var key in obj)

{

alert(obj[key].remark);

}

},

error: function (XMLHttpRequest,textStatus, errorThrown) {

alert(1);

alert(XMLHttpRequest.status);

alert(XMLHttpRequest.readyState);

alert(textStatus);

}

});

})

</script>

3.常見問題

XMLHttpRequest.status=200 (正常響應)
XMLHttpRequest.readyState=4 (
正常接收)
ajax
也會提示一個parseerror的錯誤.

可能的原因是返回的資料格式與你ajax中寫的資料格式不一致,返回的是text格式,而你寫的是json格式

JQuery將文字轉化成JSON物件需要注意的問題

JQuery的許多方法中,很多方法的引數可以傳入一個JSON物件,比如Ajax方法的第二個引數。怎麼將文字轉化成JSON物件,需要注意以下問題

varcpro_id="u2261530";(window["cproStyleApi"] =window["cproStyleApi"] ||{})[cpro_id]={at:"3",rsi0:"680",rsi1:"200",pat:"6",tn:"baiduCustNativeAD",rss1:"#FFFFFF",conBW:"1",adp:"1",ptt:"0",titFF:"%E5%BE%AE%E8%BD%AF%E9%9B%85%E9%BB%91",titFS:"14",rss2:"#000000",titSU:"0",ptbg:"90",piw:"0",pih:"0",ptp:"0"}

相關推薦

聚合資料常用快遞介面程式碼

 1. ashx程式碼 publicvoid ProcessRequest(HttpContext context) { context.Response.ContentType = "

ThinkPHP5聚合資料簡訊驗證碼介面實現註冊/忘記密碼功能

1、前端頁面主要程式碼 這裡點擊發送驗證碼按鈕通過ajax將相關資訊傳到後端getSms方法中。 <form class="form-horizontal form-signin" method="post" action="{:url('register/forget')

開放資料api呼叫介面:36個設計師常用資料網站!

景觀大資料--全國最專業的設計資源共享平臺 暑期已經過去一大半,希望大家能夠好好地安排時間,把握學習的機遇,在此,小編收集了幾十個設計師常用的高階資料專業網站,與大家一起分享! 先跟隨小編欣賞一個小視訊(來自劉師兄): 以上日照分析·製作步驟 N0.1 場地高程資料提取,給大

程式碼集合】連線資料庫、查詢所有資料,API介面定義

連線資料庫、查詢所有資料,API介面定義 <?php $dbhost = 'localhost:3306'; //mysql伺服器主機地址 $dbuser = 'root'; //mysql使用者名稱 $dbpass = 'root';//m

匯付天下聚合支付APP+網銀支付介面程式碼

上篇文章我寫了匯付天下聚合支付APP+快捷支付的介面程式碼,今天,我就在上篇的基礎上寫一下APP+網銀支付的介面程式碼。 下面是網銀支付介面程式碼: JAVA程式碼示例: 首先將需要收集的引數都寫成json格式的字串。 String valueObj = “{

通過聚合資料API實現快遞資料查詢-簡訊驗證碼-企業核名

有位朋友讓我給他新開的網站幫忙做幾個小功能,如下: 輸入快遞公司、快遞單號,查詢出這個快件的所有動態(從哪裡出發,到了哪裡)在註冊、登入等場景下的手機驗證碼(要求有一定的防刷策略)通過輸入公司名的關鍵詞,檢視這個公司是否已經註冊、法人資訊、有類似名稱的公司等等 並且可以用

iMX6q 的 EIM 介面的配置 可以與 FPGA 通訊,交換資料,最常用介面配置

這是nxp官方技術討論社群的一個最常用的EIM介面的配置,是一位經驗非常豐富佛人NXP的自身工程師總結出來的,包括引腳的的選擇和暫存器的配置      For the usage of WEIM on i.MX6, you don't need drivers for W

聚合資料 日曆介面接收

import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;                 String result =null;Map params = new HashMap

【大資料分析必備】超全國內常用API介面彙總

下面列舉了100多個國內常用API介面,並按照 筆記、出行、詞典、電商、地圖、電影、即時通訊、開

聚合資料API介面呼叫方法

public String tetapi(String tet) throws Exception{URLConnection conn = new URL("http://apis.juhe.cn/mobile/get?phone="+ ""+手機號碼+"&key

Android使用聚合資料介面解析JSON資料顯示當前地址

聚合資料經緯度解析 介面地址:http://apis.juhe.cn/geo/ 支援格式:JSON/XML 請求方式:GET 請求示例:http://apis.juhe.cn/geo/?key=您申請的APPKEY&la

linux學習下載資料常用的官網

linux系統和軟件網站Ubuntu Ubuntu官網:https://www.ubuntu.com/index_kylinubuntu每個版本的鏡像地址:http://releases.ubuntu.com/ Centos centos官網:https://www.centos.org/centos每個版本

GPIO模擬SPI介面程式碼(3線8位)

http://blog.csdn.net/sanchuyayun/article/details/48394381 關於SPI,不同的晶片具體通訊方式可能會不大一樣,所以要具體問題具體分析,下面是最近做LCD時碰到的兩個模擬SPI協議的程式碼,晶片通訊方式不同,程式碼也就不同了

cocos2d-x 常用音訊介面

//預載入 const char* fileName = "xxx.mp3"; #define audioEngine = SimpleAudioEngine::getInstance() //預載入背景音樂 audioEngine->preloadBackgroundMusic(file

IT資料 常用的網址

  5.4 Matlab 編譯器 Matlab編譯器圖形介面通過 deploytool命令啟動。另一種是mcc指令。 5.5  MEX命令 通過MEX檔案,使用者可將C++程式碼快速整合到Matlab環境中。MEX檔案的原始檔是一組C++程式碼,它們的入口函式統一

Oracle資料庫資料常用的匯入匯出

採用exp/imp命令 知識擴充:   資料泵匯出匯入(EXPDP和IMPDP)的作用    1、實現邏輯備份和邏輯恢復。    2、在資料庫使用者之間移動物件。    3、在資料庫之間移動物件    4、實現表空間搬移。   資料泵匯出匯

C++ 資料抽象 封裝 介面

C++ 資料抽象 什麼是資料抽象 向外界提供關鍵資訊。隱藏其後臺的實現細節。只表現必要的資訊,不呈現細節。 資料抽象是依賴於介面和實現分離。 通過外部介面,對其內部進行實現。達到資料抽象的目的 #include <iostream> using namespace std; i

vue專案中傳送請求獲取到的資料渲染到介面之後無法對其進行DOM操作的問題

vue.js通常鼓勵開發人員沿著“資料驅動”的方式思考,避免直接接觸DOM。this.$nextTick()將回調延遲到下次DOM更新迴圈之後執行。在修改資料之後立即使用它,然後等待DOM更新。它跟全域性方法vue.nextTick一樣,不同的是回撥的this自動繫結到呼叫它的例項上。 &nbs

pytorch 訓練資料以及測試 全部程式碼(3)

if epoch % p['epoch_size'] == p['epoch_size'] - 1: lr_ = utils.lr_poly(base_lr=p['lr'], iter_=epoch, max_iter=nEpochs, power=0.9) print('(poly

pytorch 訓練資料以及測試 全部程式碼(2)

p={‘trainBatch’:6, 'nAveGrad':1, 'lr':1e-07, 'wd':0.0005, 'momentum':0.9,'epoch_size':10, 'optimizer':'SGD()'}最後一個optimizer的值是很長的字串就不全部寫出來了。這個字典長度是7。