简体   繁体   English

C#模拟xmlhttprequest并获取json响应

[英]C# emulate xmlhttprequest and get json response

How emulate xmlhttprequest and get json response? 如何模拟xmlhttprequest并获取json响应?

Here Answer: 在这里回答:

HTTP/1.1 200 OK
Server: nginx/1.1.7
Date: Fri, 06 Jan 2012 10:50:36 GMT
Content-Type: application/x-javascript; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding, Accept-Language,Cookie
Content-Language: ru
Content-Encoding: gzip

Here Request: 在这里要求:

GET /community/accounts/?type=table&_=1325847040822&offset=0&limit=25&order_by=name&search=Danzanus&echo=2&id=accounts_index HTTP/1.1
Host: worldoftanks.ru
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
X-Requested-With: XMLHttpRequest
X-CSRFToken: aec8c3f844e930e61e8a1b7f2a51b175
Referer: http://worldoftanks.ru/community/accounts/
Cookie: csrftoken=aec8c3f844e930e61e8a1b7f2a51b175; __utma=1.624357332.1325795055.1325812734.1325847014.4; __utmz=1.1325795055.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); csw_popup=true; csw_top=true; __utmb=1.1.10.1325847014; __utmc=1

Site is http://worldoftanks.com/community/accounts/ 网站是http://worldoftanks.com/community/accounts/

GET request with parameters: http://worldoftanks.ru/community/accounts/?type=table&_=1325847040822&offset=0&limit=25&order_by=name&search=Danzanus&echo=2&id=accounts_index 带有参数的GET请求: http ://worldoftanks.ru/community/accounts/?type=table&_ = 1325847040822&offset=0&limit=25&order_by=name&search=Danzanus&echo =2&id=accounts_index

I need get result of search with link to user profile. 我需要链接到用户个人资料的搜索结果。 Firebug(FF plugin) show this answer: Firebug(FF插件)显示此答案:

{"request_data":{"items":[{"account_url":"/community/accounts/4213704-Danzanus/","abbreviation":"","exp":514111,"name":"Danzanus","clan_url":"","owner":null,"wins":816,"created_at":"2011-11-29","id":4213704,"battles":1626}],"total_count":0,"filtered_count":1,"offset":0,"echo":2},"result":"success"}

I need only "account_url". 我只需要“ account_url”。

this code return 200 OK but answer is null: 此代码返回200 OK,但答案为null:

 $.get("http://worldoftanks.ru/community/accounts", { type: "table", _: 1325811501451, offset: "0", limit: "25", order_by: "name", search: "Danzanus", echo: "3", id: "accounts_index" },
   function (data) {
       alert("Data Loaded: " + data);}

Thank You. 谢谢。

If that is the response returned by the webservice you can just parse the XHR response (in the jQuery onsuccess method for instance, this is called after the Ajax call) and get the account_url. 如果这是Web服务返回的响应,则只需解析XHR响应(例如,在jQuery onsuccess方法中,在Ajax调用之后调用)并获取account_url。 Otherwise, if you want to recreate the response client side you should create your JS object representing the response and then convert it in it's JSON representation. 否则,如果您想重新创建响应客户端,则应创建代表响应的JS对象,然后将其转换为JSON表示形式。 You can then call the method returning JSON (in this case getMyObjAsJSON ) from your client script. 然后,您可以调用从客户端脚本返回JSON的方法(在本例中为getMyObjAsJSON )。

Here's a sample 这是一个样本

function getMyObj() {
var firstname = 'Michael'
var lastname = 'Jordan'    
return  { FirstName: firstname, LastName: lastname };}  

function getMyObjAsJSON(){
 var myObj = getMyObj();

    if (myObj == null) {
        alert("obj not created");
        return;
    }

    //it converts the object in its JSON rapresentetion
    var jsonObj = $.toJSON(myObj);
return jsonObj} 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM