Hi guys,
Ik wil graag data extracten uit een Sharepoint IDOL search engine, welke is vormgegeven in een MVC-based architectuur. Derhalve worden alle data requests gedaan middels AJAX naar een interne API, alles netjes in JSON format.
Met behulp van Firebug heb ik de requests kunnen analyseren, en ik probeer deze nu na te bootsen mbv cURL om zo een makeshift API te kunnen gebruiken voor mijn te bouwen tool. Hoe goed ik de request echter ook naboots, toch krijg ik constant een error uit de API ipv de juiste resultset - ik mis ergens dus nog iets. Ik kan niet uitvissen wat dit is, ik hoop dat een van jullie hier meer ervaring mee heeft.
API URL: http://portal.XXX.YYY.com/ius/JsonHandler.aspx (authenticate mbv NTML)
Request headers:
JSON Request data
Involved cookies
Deze request levert een nette JSON resultset op. Mijn poging tot het nabootsen:
Dit levert een API error op (ongespecificeerd). Er zit dus een verschil tussen de request gedaan door de webapp en mijn nagebootste versies. Bij mijn weten heb ik echter alles gedekt: juiste headers, cookies meesturen, Authentificatie is succesvol. Wat o wat mis ik toch?
Thans
Ik wil graag data extracten uit een Sharepoint IDOL search engine, welke is vormgegeven in een MVC-based architectuur. Derhalve worden alle data requests gedaan middels AJAX naar een interne API, alles netjes in JSON format.
Met behulp van Firebug heb ik de requests kunnen analyseren, en ik probeer deze nu na te bootsen mbv cURL om zo een makeshift API te kunnen gebruiken voor mijn te bouwen tool. Hoe goed ik de request echter ook naboots, toch krijg ik constant een error uit de API ipv de juiste resultset - ik mis ergens dus nog iets. Ik kan niet uitvissen wat dit is, ik hoop dat een van jullie hier meer ervaring mee heeft.
API URL: http://portal.XXX.YYY.com/ius/JsonHandler.aspx (authenticate mbv NTML)
Request headers:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Encoding gzip, deflate Accept-Language en-US,en;q=0.5 Cache-Control no-cache Connection keep-alive Content-Length 355 Content-Type application/json; charset=UTF-8 Cookie WSS_KeepSessionAuthenticated=80; imanTimezoneOffset=-3600; WorkSiteToken=4B652956B2A0419EB8B87D4103A635B79E2479C059D6A48917AEF10996FE58725CAC***********************73E29D4CA44AA79EC8298529E06AA6A7E1A1A700B10A7F06618786048B9B9ACA97CE24F46AC0917EB301DCEF60BF45395C4D51D4CCB01E0055B459AF807824FB4E28295D Host portal.XXX.YYY.com Pragma no-cache Referer http://portal.XXX.YYY.com/ius/ User-Agent Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0 X-Requested-With XMLHttpRequest |
JSON Request data
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| {
"datasource": "expertsTab",
"operation": "queryResultsData",
"state": {
"Text": "XXX YYY",
"version": 2
},
"Text": "(XXX YYY) OR SP_ACCOUNTNAME:(none)",
"skipAutoSynonyms": true,
"biographyWeights": "",
"timebillingWeights": "",
"documentWeights": "",
"biographyIds": "",
"timebillingIds": "",
"documentIds": "",
"appName": "ius",
"serviceUrl": "./JsonHandler.aspx"
} |
Involved cookies
code:
1
2
3
4
5
6
7
| --Received WSS_KeepSessionAuthenticated = 80 imanTimezoneOffset = -3600 WorkSiteToken = 4B652956B2A0419EB8B87D4103A635B79E2479C059D6A48917AEF10996FE58725CAC08F9512AA87C46E2A9A10E61347FF0242EBC0C6AFFF6742CD7DFFAF802BFECEC421FE0C96B58928937F6B97D6D9DEF822C66CE99EA452DB61B*********************848626773E29D4CA44AA79EC8298529E06AA6A7E1A1A700B10A7F06618786048B9B9ACA97CE24F46AC0917EB301DCEF60BF45395C4D51D4CCB01E0055B459AF807824FB4E28295D --Set WorkSiteToken = 4B652956B2A0419EB8B87D4103A635B79E2479C059D6A48917AEF10996FE58725CAC08F9512AA87C46E2A9A10E61347FF0242EBC0C6AFFF6742CD7DFFAF802BFECEC421FE0C96B58928937F6B97D6D9DEF822C66CE99EA452DB61B*********************848626773E29D4CA44AA79EC8298529E06AA6A7E1A1A700B10A7F06618786048B9B9ACA97CE24F46AC0917EB301DCEF60BF45395C4D51D4CCB01E0055B459AF807824FB4E28295D |
Deze request levert een nette JSON resultset op. Mijn poging tot het nabootsen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| curl
--ntlm
--negotiate
-u user:pass
-X POST
-H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
-H "Accept-Language: en-US,en;q=0.5"
-H "Cache-Control: no-cache"
-H "Connection: keep-alive"
-H "Content-Type: application/json; charset=UTF-8"
-H "Host: portal.XXX.YYY.com"
-H "Pragma: no-cache"
-H "Referer: http://portal.XXX.YYY.com/ius/"
-H "User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0"
-H "X-Requested-With: XMLHttpRequest"
-H "Cookie: WSS_KeepSessionAuthenticated=80; imanTimezoneOffset=-3600; WorkSiteToken=4B652956B2A0419EB8B87D4103A635B79E2479C059D6A48917AEF10996FE58725CAC08F9512AA87C46E2A9A10E61347FF0242EBC0C6AFFF6742CD7DFFAF802BFECEC421FE0C96B58928937F6B97D6D9DEF822C66CE99EA452DB61B1A8********************8626773E29D4CA44AA79EC8298529E06AA6A7E1A1A700B10A7F06618786048B9B9ACA97CE24F46AC0917EB301DCEF60BF45395C4D51D4CCB01E0055B459AF807824FB4E28295D"
-d '{"datasource":"expertsTab","operation":"queryResultsData","state":{"Text":"XXX YYY","version":2},"Text":"(XXX YYY) OR SP_ACCOUNTNAME:(none)","skipAutoSynonyms":true,"biographyWeights":"","timebillingWeights":"","documentWeights":"","biographyIds":"","timebillingIds":"","documentIds":"","appName":"ius","serviceUrl":"./JsonHandler.aspx"}'
http://portal.XXX.YYY.com/ius/JsonHandler.aspx |
Dit levert een API error op (ongespecificeerd). Er zit dus een verschil tussen de request gedaan door de webapp en mijn nagebootste versies. Bij mijn weten heb ik echter alles gedekt: juiste headers, cookies meesturen, Authentificatie is succesvol. Wat o wat mis ik toch?
Thans
