Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 06:31

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



WinHttp| auf ask.fm anonyme Fragen stellen

Discussion on WinHttp| auf ask.fm anonyme Fragen stellen within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 224
Join Date: Dec 2010
Posts: 2,766
Received Thanks: 931
WinHttp| auf ask.fm anonyme Fragen stellen

Hallo

Ich versuche seit gestern bei ask.fm anonym fragen zu stellen, aber es funktioniert nicht... Ich bekomme beim Fragen stellen immer nichts zurück..

POST Parameter aus LiveHttpHeaders : authenticity_token=aArhKUsuOJgi4K63fBE3LInPlY9wPxo 66yAcvY0LXNY%3D&question%5Bquestion_text%5D=test+t est&authenticity_token=aArhKUsuOJgi4K63fBE3LInPlY9 wPxo66yAcvY0LXNY%3D

Also 2 mal den authenticity_token und die Frage ... sieht erstmal nicht wirklich schwer aus(warscheinlich mache ich auch einfach einen blöden Fehler)

Mit meinem Script funktioniert es aber nicht - Ich bekomme immer nur den angefragten Header zurück..
Code:
#include "Data\Includes\WinHttp.au3"
#include <String.au3>



Global $currentheader

Global $Host = "www.ask.fm"
Global $Agent = _WinHttpOpen("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5", $WINHTTP_ACCESS_TYPE_NAMED_PROXY,"127.0.0.1:8888");user agent (proxy für fiddler)
$Connect = _WinHttpConnect($Agent, $Host);connect

$sSite = _Easy_WinHttp()
$sSite = _Easy_WinHttp("GET","/selin5453") ;zufällig ausgewähltes profil

$sSecurityToken = _StringBetween($sSite,'var AUTH_TOKEN = "','";')
If Not IsArray($sSecurityToken) Then
	MsgBox(16,"Fehler","Konnte security token nicht auslesen...")
	Exit
EndIf
$sSend = "authenticity_token=" & _UnicodeURLEncode($sSecurityToken[0]) & "&question%5Bquestion_text%5D=" & _DecodeMessage("testtttt") & "&authenticity_token=" & _UnicodeURLEncode($sSecurityToken[0])
FileWrite("test.html",$currentheader & @CRLF & @CRLF & _Easy_WinHttp("POST","/selin5453/questions/create",$sSend))


Func _Easy_WinHttp($sType = "GET", $sPage = "/", $sPost = "",$sXML = "") ; thx Arcanis
	$HTTP_Request = _WinHttpOpenRequest($Connect, $sType, $sPage, "HTTP/1.1", $Host)
	If StringLen($sPost) Then
		_WinHttpSendRequest($HTTP_Request,"Content-Type: application/x-www-form-urlencoded" & @CRLF, $sPost)
	Else
		_WinHttpSendRequest($HTTP_Request)
	EndIf
	_WinHttpReceiveResponse($HTTP_Request)
	$currentheader = _WinHttpQueryHeaders($HTTP_Request)
	$HTML = ""
	Do
		$HTML &= _WinHttpReadData($HTTP_Request)
	Until @error
	_WinHttpCloseHandle($HTTP_Request)
	Return $HTML
EndFunc

Func _DecodeMessage($sMessage)
	$sMessage = _UnicodeURLEncode($sMessage)
	$sMessage = StringReplace($sMessage," ","+")
	Return $sMessage
EndFunc

Func _UnicodeURLEncode($UnicodeURL);thx
	$UnicodeBinary = StringToBinary($UnicodeURL, 4)
	$UnicodeBinary2 = StringReplace($UnicodeBinary, '0x', '', 1)
	$UnicodeBinaryLength = StringLen($UnicodeBinary2)
	Local $EncodedString
	For $i = 1 To $UnicodeBinaryLength Step 2
		$UnicodeBinaryChar = StringMid($UnicodeBinary2, $i, 2)
		If StringInStr(" -_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890", BinaryToString('0x' & $UnicodeBinaryChar, 4)) Then
			$EncodedString &= BinaryToString('0x' & $UnicodeBinaryChar)
		Else
			$EncodedString &= '%' & $UnicodeBinaryChar
		EndIf
	Next
	Return $EncodedString
EndFunc
Habe es mir auch nochmal mit Fiddler angeschaut... Die geschickten POST Parameter sehen schonmal nicht falsch aus, Fiddler zeigt aber einen Fehler beim Frage stellen an : "Method Not Allowed"

Hoffe ihr könnt mir da weiterhelfen
Havelock_Vetinari is offline  
Old 06/25/2013, 15:29   #2
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,404
Ich empfehle die Verwendung von _WinHttpSimpleRequest aus der WinHttp.au3.
Da du das Handle bei "_Easy_WinHttp" schließt, könnte das Token ungültig werden.

Wie sieht denn der ganze HTTPHeader aus, der an den Server gesendet wird?

MfG
Achat is offline  
Thanks
1 User
Old 06/25/2013, 15:48   #3
 
elite*gold: 224
Join Date: Dec 2010
Posts: 2,766
Received Thanks: 931
Quote:
Originally Posted by Achat View Post
Ich empfehle die Verwendung von _WinHttpSimpleRequest aus der WinHttp.au3.
Da du das Handle bei "_Easy_WinHttp" schließt, könnte das Token ungültig werden.

Wie sieht denn der ganze HTTPHeader aus, der an den Server gesendet wird?

MfG
_WinHttpSimpleRequest funktioniert auch nicht.

Code:
#include "Data\Includes\WinHttp.au3"
#include <String.au3>



Global $currentheader

Global $Host = "www.ask.fm"
Global $Agent = _WinHttpOpen("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5", $WINHTTP_ACCESS_TYPE_NAMED_PROXY,"127.0.0.1:8888");user agent
$Connect = _WinHttpConnect($Agent, $Host);connect


$sSite = _WinHttpSimpleRequest($Connect)
$sSite = _WinHttpSimpleRequest($Connect,"GET","/selin5453","ask.fm")
FileWrite("test1.html",$sSite)

$sSecurityToken = _StringBetween($sSite,'var AUTH_TOKEN = "','";')
If Not IsArray($sSecurityToken) Then
	MsgBox(16,"Fehler","Konnte security token nicht auslesen...")
	Exit
EndIf
$sSend = "authenticity_token=" & _UnicodeURLEncode($sSecurityToken[0]) & "&question%5Bquestion_text%5D=" & _DecodeMessage("testtttt") & "&authenticity_token=" & _UnicodeURLEncode($sSecurityToken[0])
$sHeaders = "Accept: text/javascript, application/javascript, */*, text/javascript" & @CRLF & "Origin: http://ask.fm" & @CRLF & "X-Requested-With: XMLHttpRequest" & @CRLF & "Content-Type: application/x-www-form-urlencoded" & @CRLF & "Accept-Encoding: gzip,deflate,sdch" & @CRLF & "Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4"
FileWrite("test2.html",_WinHttpSimpleRequest($Connect,"POST","/selin5453/questions/create","www.ask.fm/selin5453",$sSend,$sHeaders))

Func _DecodeMessage($sMessage)
	$sMessage = _UnicodeURLEncode($sMessage)
	$sMessage = StringReplace($sMessage," ","+")
	Return $sMessage
EndFunc

Func _UnicodeURLEncode($UnicodeURL);thx
	$UnicodeBinary = StringToBinary($UnicodeURL, 4)
	$UnicodeBinary2 = StringReplace($UnicodeBinary, '0x', '', 1)
	$UnicodeBinaryLength = StringLen($UnicodeBinary2)
	Local $EncodedString
	For $i = 1 To $UnicodeBinaryLength Step 2
		$UnicodeBinaryChar = StringMid($UnicodeBinary2, $i, 2)
		If StringInStr(" -_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890", BinaryToString('0x' & $UnicodeBinaryChar, 4)) Then
			$EncodedString &= BinaryToString('0x' & $UnicodeBinaryChar)
		Else
			$EncodedString &= '%' & $UnicodeBinaryChar
		EndIf
	Next
	Return $EncodedString
EndFunc
ganzer Header :
Code:
POST http://ask.fm/LukasJo777/questions/create HTTP/1.1
Host: ask.fm
Connection: keep-alive
Content-Length: 164
Accept: text/javascript, application/javascript, */*, text/javascript
Origin: http://ask.fm
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://ask.fm/LukasJo777
Accept-Encoding: gzip,deflate,sdch
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: ...............
authenticity_token=BcRt5LGn7TZveHBv4nANADds1mNGK4Vmve0LbjQ4fDk%3D&question%5Bquestion_text%5D=iiii&authenticity_token=BcRt5LGn7TZveHBv4nANADds1mNGK4Vmve0LbjQ4fDk%3D
Havelock_Vetinari is offline  
Old 06/27/2013, 16:11   #4
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,404
Eventuell müssen diese
Code:
[B]Content-Length[/B]: 164
Accept: text/javascript, application/javascript, */*, text/javascript
Origin: http://ask.fm
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://ask.fm/LukasJo777
Accept-Encoding: gzip,deflate,sdch
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
im Header mitgesendet werden. Zusätzliche Header lassen sich mit WinHttpSimpleRequest ganz leicht setzen.

MfG
Achat is offline  
Thanks
1 User
Old 06/27/2013, 16:28   #5
 
elite*gold: 224
Join Date: Dec 2010
Posts: 2,766
Received Thanks: 931
Quote:
Originally Posted by Achat View Post
Eventuell müssen diese
Code:
[B]Content-Length[/B]: 164
Accept: text/javascript, application/javascript, */*, text/javascript
Origin: http://ask.fm
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://ask.fm/LukasJo777
Accept-Encoding: gzip,deflate,sdch
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
im Header mitgesendet werden. Zusätzliche Header lassen sich mit WinHttpSimpleRequest ganz leicht setzen.

MfG
Diese zusätzlichen informationen Habe ich schon mitgesendet (siehe Script im 2. Post)


Mir ist aber auch aufgefallen, dass in Fiddler 2 Einträge für jede "Aktion" angeueigt werden.. Beim fragen stellen kommt zuerst eine Weiterleitung (moved). Das komische ist, dass man aber auf die gleiche Seite (ask.fm/User/questions/create) weitergeleitet wird und es dor dann zum Fehler kommt (Method not Allowed)
Havelock_Vetinari is offline  
Reply


Similar Threads Similar Threads
Was für Fragen könnten sie stellen?
11/28/2012 - Off Topic - 6 Replies
Hi Com, Ich habe morgen die Abschlusspräsentation und habe das Thema "Diabetes Mellitus". Deswegen meine frage an euch! :o Was für Fragen die Lehrer stellen könnten über dieses Thema? Unnötige Post werden Reported#
[Read First]Vor dem Fragen stellen!
08/05/2011 - Nostale - 10 Replies
Hier eine kleine Liste was man zu beachten hat, wenn man einen neuen Threat aufmacht: Erstmal generelle Regeln: 1. Accounthandel-Beiträge müssen in den Black-Market Teil. Ansonsten wird der Beitrag geschlossen, und bei mehrfacher Begehung gibt es dann Infractions. 2. Bitte meldet alle auffälligen Threads. Alisami wird sich drumm kümmern! Einfach eine PN an ihn schicken! 3. Spam, Werbung oder Sachen die nicht zu Thema passen werden geclosed und verwarnt.
ox fragen stellen
03/03/2010 - Metin2 Private Server - 1 Replies
ist jetzt eine etwas doofe frage aber finde code net wie man das macht also frage ich was ist der code um bei ox wettbewerb fragen zu stellen?
Wie fragen stellen ?
02/04/2010 - Metin2 Private Server - 1 Replies
Hey, ich habe auf nem Pserver (bin dort GM) ox event übersetzt, doch wenn es nun startet, wie stell ich nun die fragen ? .. Lg JTanski
[How to] Fragen stellen im Ox - Wettbewerb
10/20/2009 - Metin2 PServer Guides & Strategies - 6 Replies
Hallo Com . Ihr startet den Ox Wettbewerb mit /open. Und fragen stellt ihr wenn ihr auf die Namenlosen Blumen drauf klickt Und das erste nimmt. Achtung die fragen sind Chinesisch , wie man die auf Deutsch übesertzt bin ich noch nicht drauf gekommen :D Hoffe konnte einigermasen weiter helfen



All times are GMT +2. The time now is 06:31.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.