Как я могу сделать POST-запрос, зная его заголовки и ответ на POLL? - PullRequest
0 голосов
/ 26 мая 2011

Я пытаюсь понять, что происходит, когда я нажимаю кнопку, я получаю запрос POST, к которому я получаю запрос POLL (результат).Теперь я хочу иметь возможность выполнять запрос без нажатия, без использования триггеров событий, я хочу иметь возможность выполнить запрос, введя его в строку команды Firebug.У кнопки есть keydown -event с функцией "fn.apply(object, args)", которая вызывает некоторый объект и аргументы, которые я пока не знаю.

  1. Без информации, есть ли способ повторить только что выполненный POST-запрос без нажатия?

Связанный пост здесь, где я спрашиваю о событиях , теперь область просто пытается повторить запрос POST для получения запроса POLL.

Я думаю, что у меня есть вся необходимая информация, хранящаяся в браузере с такими вещами, как идентификатор сессии, поэтому мне нужно просто вызвать функцию, которая запускает запрос POST, или вызвать запрос POST напрямую.

Как я могу выполнить запрос POST?

Если я не могу выполнить запрос POST снова с этой информацией, что еще мне нужно сделать, чтобы выполнить запрос POST?

Что использует Silverlight с SVC?Нужно ли как-то форматировать запрос или стандартизирован POST-запрос?

POST / POLL URLS

http://game.com/Presentation/Service.svc/ajaxEndpoint/StartSearch
http://game.com/Presentation/Service.svc/ajaxEndpointPoll

POSTStartSearch

Request Headers
Host    game.com
User-Agent      Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110422 Ubuntu/10.04 (lucid) Firefox/3.6.17
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive      115
Connection      keep-alive
Content-Type    application/json; charset=UTF-8
X-Qooxdoo-Response-Type application/json
Referer http://game.com/index.aspx
Content-Length  110
Cookie  __utma=30514082.25780803.1305937283.1306259330.1306374895.6; __utmz=30514082.1306376876.6.8.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=JSON%20site%3Agame.com; __utmb=30514082.9.10.1306374895; __utmv=; __utmc=30514082; s_sq=%5B%5BB%5D%5D; s_cc=true; s_ria=flash%2010%7Csilverlight%20not%20detected
Pragma  no-cache
Cache-Control   no-cache

Заголовки запроса POLL

POST /Presentation/Service.svc/ajaxEndpoint/Poll HTTP/1.1
Host: game.com
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110422 Ubuntu/10.04 (lucid) Firefox/3.6.17
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Content-Type: application/json; charset=UTF-8
X-Qooxdoo-Response-Type: application/json
Referer: http://game.com/index.aspx
Content-Length: 295
Cookie: __utma=30514082.25780803.1305937283.1306259330.1306374895.6; __utmz=30514082.1306376876.6.8.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=JSON%20site%3Agame.com; __utmv=; __utmc=30514082; s_sq=%5B%5BB%5D%5D; s_cc=true; s_ria=flash%2010%7Csilverlight%20not%20detected
Pragma: no-cache
Cache-Control: no-cache

[Обновить]

Направлено ответом наАякс, я думаю, что это может работать примерно так, как показано ниже.Он работает, но не работает, как предполагалось (отладка ...):

var client = new XMLHttpRequest();

client.open("POST", "http://game.com/Presentation/Service.svc/ajaxEndpoint/StartSearch", true);
client.setRequestHeader("Content-Type", "application/json; charset=utf-8");
client.send('{"session":"xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx","cityid":"787878788","maxGold":0,"resType":0,"maxTime":86400}');

alert( client.getResponseText );
// document.getElementById("myDiv").innerHTML= client.responseText;

Формат JSON в ответе на запрос POLL

Один форматJSON, очевидно, что-то вроде проверки перед запросом.Это получено после запроса POST как ОПРОС.Если я правильно понимаю, мне нужен новый идентификатор запроса, новое время и, возможно, мне нужно что-то обновить.

{"session":"xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx","requestid":"111","requests":"UA:\fMM:888,0,\fCAT:1\fSERVER:\fALLIANCE:\fQUEST:\fEE:\fPLAYER:\fCITY:111111111\fWC:\fWORLD:\fVIS:c:111111111:0:-1111:-111:222:444\fUFP:\fREPORT:\fMAIL:\fFRIENDINV:\fTIME:11111111111111\fCHAT:\fSUBSTITUTION:\fINV:\fALL_AT:\fMAT:333333333\fSEARCH:\f"}

опция jQuery

многие ответы предполагают jQueryпоэтому я запустил исходный код jQuery здесь в Firebug, но не пытался заставить его работать.Это, вероятно, самый простой способ сделать запрос POST.Если бы кто-то мог сказать какой-то визуализатор, чтобы увидеть мои запросы POLL, это было бы очень полезно (не зная наверняка, что не так, используя профилировщик и отладчик firebug).Может быть, я не улавливаю вывод, но он приходит, в настоящее время получая undefined в качестве ответа.

Ответы [ 2 ]

1 голос
/ 26 мая 2011

ВАУ вы много смотрели на то, что делает ваш компьютер и что вам нужно делать,

Перейти к поиску AJAX (XMLHttpRequest) - http://www.w3schools.com/ajax/default.asp

Для лучшего результата используйте jQuery

$ (). Аякс ( URL: "" данные: { "pollPostName": "pollactiveID"} DATATYPE: "JSON" );

Если вы дадите мне полную ссылку о том, как я могу получить доступ к опросу, я напишу его для вас. используя все, что у вас есть или нет, если необходим native

0 голосов
/ 28 мая 2011

http://api.jquery.com/jQuery.post/

написать функцию, которая запускает $ .post затем вы можете использовать эту функцию в командной строке JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...