• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    PAJIN
    PAJIN --- ---
    MARASAN: Prvne bych zkusil soapUI a porovnal to s tim requestem co vygeneruje.
    a pak jeste zalezi jak je nastavenej ten endpoint,obcas je potreba pridat action i do hlavicky takhle:
    Content-Type: application/soap+xml;charset=UTF-8;action="MOJE_AKCE_VCETNE_NAMESPACE"

    H_U_N_T_E_R
    H_U_N_T_E_R --- ---
    NECROMAN: nejspíš jsi neprorazil spam filter :-) už jsem ji na web hodil. Díky
    NECROMAN
    NECROMAN --- ---
    NECROMAN: jo a jeste tam planuji zminit postupy pro cachovani requestu a obrazku, to je take celkem veda a dost frameworku, ktere se tomu venuji, bud zasekavaji UI thread nebo treba neresi pouziti ve virtualizovanych listech.
    NECROMAN
    NECROMAN --- ---
    SLUPKA: posilal jsem ji pred tydnem, ale ted maji asi praci s Brnenskym MS festem, tak to zapadlo:
    "Tipy, triky a hacky pro vývoj Windows Phone a Windows 8 aplikací"
    Anotace:
    Ty nejzajímavější poznatky posbírané za dva roky vývoje pro platformu Windows Phone 7 a 8 a rok programování Windows 8 a 8.1 aplikací, aneb co se na MSDN a StackOverflow nedočtete.

    Jeste davam dohromady, cemu se presne venovat, protoze to je dost siroke tema. Ctvrtinu bych asi venoval tipum, jak si usnadnit vyvoj pro obe platformy dohromady s tim, ze popisu i to, co se na "klasickych MVVM/Portable libs" prednaskach vubec nezminuje. Dale cast venuji celkem neznamemu problemu memory leaku u WP platformy predevsim u pouziti nekterych nativnich UserControls a treba i obycejnych Images. Dale popisu triky a chytaky, kdyz se pracuje ve WP aplikaci s WebBrowserem nebo ve Windows 8 WebView, a na konec jeste par drobnosti, kde ruzne haze MS vyvojarum klacky pod nohy.

    Pokud je nejaky konkretni dotaz ci namet, tak sem s nim a mohu ho tam pridat :)
    SLUPKA
    SLUPKA --- ---
    NECROMAN: Máš nějakou anotaci? :) Na webu ještě není :)
    LADY_LEIA
    LADY_LEIA --- ---
    NECROMAN: ja uvazuju, ze se stavim v nedeli.
    MICA
    MICA --- ---
    NECROMAN: Taky se jdu v neděli podívat :)
    P19
    P19 --- ---
    NECROMAN: já jdu určitě v neděli a možná i v sobotu.
    NECROMAN
    NECROMAN --- ---
    Uvidim se s nekym na MS festu?
    MS Fest 2013
    http://www.ms-fest.cz/
    Ja budu v nedeli ted v Brne, a v Praze budu mit i jedno povidani o tricich pri vyvoji pro Windows Phone a Windows 8, kdyby byl zajem.
    MILL
    MILL --- ---
    Nemate nekdo odzkousene napojeni na office365 ? Konkretne potrebuju zapisovat do kalendare udalosti a tyto potom zpetne synchronizovat v pripade zmeny v office365 zpet do firemniho webu.
    NECROMAN
    NECROMAN --- ---
    Jeden dev clanek, co jsem dal dohromady:
    Shared localization for Windows Phone 8 and Windows 8 apps using Portable Class Libraries
    Shared localization for Windows Phone 8 and Windows 8 apps using Portable Class Libraries « Martin Suchan – BloQ
    http://suchan.cz/?p=179
    MICA
    MICA --- ---
    PAJIN: Díky moc, díky Fiddleru se mi to povedlo vypátrat. Bylo to způsobeno nově
    přidaným parametrem požadovaným při loginu. Bez něj se sice šlo zalogovat ale jeden z parametrů v cookies byl vygenerován špatně, a proto docházelo k chybám při volání API.
    MICA
    MICA --- ---
    PAJIN: Oh, zkusím tedy fiddler. Mám totiž trochu podezření, že jquery do https requestů přidává ještě nějaké parametry nebo headery, které v http requestech chybí
    PAJIN
    PAJIN --- ---
    MICA: Ja kdyz sem resil neco podobnyho tak nez etheral/wireshark se me osvedcil fiddler, kde je to videt lip. Postupne sem upravoval ten muj request aby mel stejny data jako z prohlizece
    MICA
    MICA --- ---
    MICA: Koukám že jsem nenapostoval komunikaci v obou směrech

    jquery (Firefox)


    WebRequest

    MICA
    MICA --- ---
    JACHYMKO:
    1) Dojde k vyjímce
    WebException - "The remote server returned an error: (502) Bad Gateway."
    a WebExceptionStatus.ProtocolError vrátí json odpověď
    "{\"message\":\"You are not allowed to purchase this listing. The Community Market might be temporarily disabled or your account might be restricted from using the Community Market.\"}"
    (Můj účet ale zablokovaný není, přes js mi to API funguje bez problémů)

    2) ah, bezhlavý copypasting *facepalm*. tojejedno.com je webovka, která o NTLM/Kerberos ani nezavadí
    MICA
    MICA --- ---
    Nemáte náhodou někdo zkušenosti s přistupováním na HTTPS přes WebRequest a zároveň znalost jquery/javascriptu?

    Zabývám se přepisem následující z jquery funkce, která zadává požadavek jistému API, do C# přes WebRequest

    		$J.ajax( {
    			url: 'https://tojejedno.com/neconeco/buylisting/' + listingid,
    			type: 'POST',
    			data: {
    				sessionid: g_sessionID,
    				currency: g_rgWalletInfo['wallet_currency'],
    				subtotal: this.m_nSubtotal,
    				fee: this.m_nFeeAmount,
    				total: this.m_nTotal
    			},
    			crossDomain: true,
    			xhrFields: { withCredentials: true }
    		
    //Zbytek funkce už je nepodstatný
    		} ).done( function ( data ) {
    			BuyItemDialog.OnSuccess( { responseJSON: data } );
    		} ).fail( function( jqxhr ) {
    			// jquery doesn't parse json on fail
    			var data = $J.parseJSON( jqxhr.responseText );
    			BuyItemDialog.OnFailure( { responseJSON: data } );
    		} );
    
    


    Určitou dobu mi to fungovalo s následujícím kódem, jenže provider API nejspíš přidal nějaké zpřísňující
    kritérium a požadavky na API mi teď nefungují. Provider API je vyhodnotí jako chybné.

                        HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
    
                        request.Method = "POST";
                        request.Timeout = 10000;
    
                        //Headery zachycene pres wireshark
                        request.Host = "tojejedno.com";
                        request.KeepAlive = true;
                        request.Accept = "*/*";
                        request.Headers.Add("Origin", "http://tojejedno.com");
                        request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0";
                        request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
                        request.Referer = "http://tojejedno.com/neconeco/";
    
                        request.Headers.Add("Accept-Encoding","gzip,deflate,sdch");
                        request.Headers.Add("Accept-Language", "en-US ,en;q=0.8");
                        
                        //Cookies
                        request.CookieContainer = cookies ?? new CookieContainer();
    
                        //Divociny kolem SSL
                        request.Proxy = null;
                        request.Credentials = CredentialCache.DefaultCredentials;
    
                        ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
    
    
                        //Zpracovani dat, ktera budou odeslana POST metodou
                        string dataString = String.Join("&", Array.ConvertAll(data.AllKeys, key =>
                            String.Format("{0}={1}", HttpUtility.UrlEncode(key), HttpUtility.UrlEncode(data[key]))
                        )
                        );
                        byte[] dataBytes = Encoding.ASCII.GetBytes(dataString);
                        request.ContentLength = dataBytes.Length;
                        Stream requestStream = request.GetRequestStream();
                        requestStream.Write(dataBytes, 0, dataBytes.Length);
                    
                        //Ziskani odezvy
                        HttpWebResponse resp = (HttpWebResponse)request.GetResponse();
    
                        return resp;
    



    Jsem si jistý, že odesílám správná data a že v cookies mám všechny parametry, které API vyžaduje.
    Ale ze dne na den mi výše uvedený kód přestal fungovat. Tak jsem se rozhodl podívat na to co se
    děje na síti i přesto, že je komunikace šifrovaná a přišel jsem na to, že WebRequest přistupuje
    na rozdíl od Firefoxu k tomu HTTPS API jinak a zdá se, že špatně:

    Tohle generuje Firefox


    Tohle generuje můj kód


    Bohužel SSL a síťažina vůbec není moje silná stránka, takže nevím kde hledat zakopaného psa. Neměli byste někdo nějaký tip?
    H_U_N_T_E_R
    H_U_N_T_E_R --- ---
    Spuštěny registrace na MSFest:
    MS Fest 2013
    http://www.ms-fest.cz/
    NECROMAN
    NECROMAN --- ---
    ALCATOR: hmm, dik za odpoved :) Priste budu vice politicky korektni.
    Kliknutím sem můžete změnit nastavení reklam