Att kommunicera med en server

Diskussion i 'Frågor, support och diskussion' startad av lagge92, 24 maj 2011.

  1. lagge92

    lagge92 Teen Droid Medlem

    Blev medlem:
    11 maj 2010
    Inlägg:
    284
    Mottagna gillanden:
    41

    MINA ENHETER

    Jag har precis skapat en liten webbsida i ASP .NET där jag har en xml databas som ska innehålla highscores till en app.

    Finns det ett simpelt sätt att från mobilen hämta all data från databasen och även kunna lägga upp sin egen poäng? Jag har sökt en hel del men mest hittat speciallösningar på mer avancerade problem. Ingenting såhär rudimentärt.

    Hade gärna tagit del av de simplaste sätten att gå till väga då jag är väldigt grön på området :)

    Tack!
     
  2. asperon

    asperon Adult Droid Medlem

    Blev medlem:
    6 augusti 2009
    Inlägg:
    586
    Mottagna gillanden:
    94
    Operatör:
    Tele2
    Telefon:
    Pixel 6

    MINA ENHETER

    Operatör:
    Tele2
    Telefon:
    Pixel 6
    rest/json
     
  3. lagge92

    lagge92 Teen Droid Medlem

    Blev medlem:
    11 maj 2010
    Inlägg:
    284
    Mottagna gillanden:
    41

    MINA ENHETER

    vad rekommenderar du om man endast vill hämta en array med 50 strängar och en array med 50 heltal?
     
  4. Lindstromer

    Lindstromer Kid Droid Medlem

    Blev medlem:
    28 december 2010
    Inlägg:
    48
    Mottagna gillanden:
    7

    MINA ENHETER

    Det bör nämnas att REST inte är en teknik i sig utan mer en beskrivning av hur man skickar data(arkitektur).

    SOAP, XML, JSON är sannolikt de tre mest vanliga API'erna man ser ute på webben. SOAP har stora nackdelar när man jobbar mot mobiler(Android/iOS) då det saknas inbyggt stöd för det samt att du skickar med mycket onödig data.

    Json är nog det jag skulle rekommendera, dels för att det är enkelt att konsumera och dels för att det minskar datamängden du skickar ordentligt.:)
     
    lagge92 gillar detta.
  5. asperon

    asperon Adult Droid Medlem

    Blev medlem:
    6 augusti 2009
    Inlägg:
    586
    Mottagna gillanden:
    94
    Operatör:
    Tele2
    Telefon:
    Pixel 6

    MINA ENHETER

    Operatör:
    Tele2
    Telefon:
    Pixel 6
    ett rest anrop mot en websida i valfritt språk som returnerar två json objekt, båda arrayer.
     
    lagge92 gillar detta.
  6. lagge92

    lagge92 Teen Droid Medlem

    Blev medlem:
    11 maj 2010
    Inlägg:
    284
    Mottagna gillanden:
    41

    MINA ENHETER

    Tack för era förslag!
    Jag håller på att skapa en webservice som returnerar den datan jag vill åt. Så som jag hat förstått det bör en sådan metod se ut ungefär såhär?
    Kod:
    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string TestMetod(bool b) //returnerar det inmatade boolean värdet
    {
        return new JavaScriptSerializer().Serialize(b);
    }
    
    Eller kommer all kommunikation ske med strängar även i metodanropet som sedan måste konverteras till en annan datatyp?
    Skriver det också så andra som söker efter detta kan hitta :)
     
    Last edited: 25 maj 2011
  7. woody

    woody Teen Droid Medlem

    Blev medlem:
    3 september 2009
    Inlägg:
    319
    Mottagna gillanden:
    19

    MINA ENHETER

    Det ser ut som Microsofts WCF. Jag har inte pysslat jättemycket med det men WCF tar hand om serialiseringen åt dig. Då ska allltså returnera objektet som du vill ha representerat som JSON. Du kan utan bekymmer returnera råa datatyper såsom int, string eller bool eller Listor av dessa. Ska du returnera någon egendefinierad klass måste då sätta något attribut på de properties som ska vara med i serialiseringen.
     
    lagge92 gillar detta.
  8. lagge92

    lagge92 Teen Droid Medlem

    Blev medlem:
    11 maj 2010
    Inlägg:
    284
    Mottagna gillanden:
    41

    MINA ENHETER

    Tack! Jag har nu fått det att fungera men det ser ut som att den automatiskt returnerar SOAP objekt? Eller beror det på hur man anropar sin WebService?

    Såhär ser det ut när jag navigerar till min Webservice i webbläsaren:
    [​IMG]

    :)
     
  9. dhanjel

    dhanjel Senior Droid Medlem

    Blev medlem:
    9 december 2009
    Inlägg:
    1.415
    Mottagna gillanden:
    280
    Operatör:
    Telia
    Telefon:
    iPhone 11

    MINA ENHETER

    Operatör:
    Telia
    Telefon:
    iPhone 11
    lagge92 gillar detta.
  10. woody

    woody Teen Droid Medlem

    Blev medlem:
    3 september 2009
    Inlägg:
    319
    Mottagna gillanden:
    19

    MINA ENHETER

    WCF är ett herke med massa konstiga attribut och konfigureringar och att hitta en bra sida som beskriver hur man ska göra bland alla tusentals dåliga är inte så lätt.

    Denna länk verkar beskriva hur du ska göra:http://weblogs.asp.net/jdanforth/archive/2008/08/23/returning-json-from-restful-interface-with-wcf.aspx

    Gissningsvis är det ResponseFormat=WebMessageFormat.Json i WebGet-attributet som är hemligheten

    Det har säkert betydelse vad som står i din web.config också. (som sagt WCF är dett herke att jobba med...)
     
    lagge92 gillar detta.
  11. dhanjel

    dhanjel Senior Droid Medlem

    Blev medlem:
    9 december 2009
    Inlägg:
    1.415
    Mottagna gillanden:
    280
    Operatör:
    Telia
    Telefon:
    iPhone 11

    MINA ENHETER

    Operatör:
    Telia
    Telefon:
    iPhone 11
    Det ser inte ut som WCF utan en vanlig webservice i .net enligt mig.

    Du kan skicka in och ut alla generella datatyper (string, bool, int osv).
    Har aldrig testat att skicka tillbaka som json men det verkar ju inte bita om man kollar på din utskrift.
     
    lagge92 gillar detta.
  12. lagge92

    lagge92 Teen Droid Medlem

    Blev medlem:
    11 maj 2010
    Inlägg:
    284
    Mottagna gillanden:
    41

    MINA ENHETER

    Det är i princip det de är ja :)

    Jag fick ta bort en del i koden för att få det att funka på servern. Men det var sånt som skulle ske automatiskt ändå så som:
    "[ScriptMethod(ResponseFormat = ResponseFormat.Json)]"
    och
    "JavaScriptSerializer().Serialize();"

    Men när jag testade lokalt så fungerade det utmärkt haha. Antar att det jag tog bort va nödvändigt och att jag kanske måste pilli i Web.config och min .asmx fil för att få de ovanstående raderna gillade?