SORU
25 Kasım 2011, Cuma


İyi bir JSON Java eklentisi arayın .NET Konsol

Bir Json dize döndürür ASP.Net MVC3 web hizmeti veriyorum. Bir c, Java eklentisi aramak için en iyi yolu nedir# konsol uygulaması ve geri dönüş için bir ayrıştırma .NET nesne?

Benim referans MVC3 app konsolunu almalıyım?

Json.Net seri hale ve Serisi kaldırılırken için bazı iyi yöntemler var .NET nesneleri, ama bir Java eklentisi değerleri kazanır, Nakil için yol olduğunu göremiyorum.

Ya da sadece web hizmeti için Gönderme kazanır, kendi Yardımcısı benim mi üretmeli? Nasıl seri hale getirmek istiyorum .net anahtar değer çiftleri için nesne mi?

CEVAP
25 Kasım 2011, Cuma


HttpWebRequest bana bir JSON dize döndüren web hizmeti ALMAK için kullanıyorum. Bir ALMAK için böyle bir şey görünüyor:

// Returns JSON string
string GET(string url) 
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    try {
        WebResponse response = request.GetResponse();
        using (Stream responseStream = response.GetResponseStream()) {
            StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
            return reader.ReadToEnd();
        }
    }
    catch (WebException ex) {
        WebResponse errorResponse = ex.Response;
        using (Stream responseStream = errorResponse.GetResponseStream())
        {
            StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
            String errorText = reader.ReadToEnd();
            // log errorText
        }
        throw;
    }
}

Ben o dizeyi ayrıştırmak dinamik JSON.Net kullanın. Alternatif olarak, C oluşturabilir# örnek JSON çıktı bu diğer aracı kullanarak statik sınıfı: http://jsonclassgenerator.codeplex.com/

SONRASI bu gibi görünüyor:

// POST a JSON string
void POST(string url, string jsonContent) 
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    request.Method = "POST";

    System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
    Byte[] byteArray = encoding.GetBytes(jsonContent);

    request.ContentLength = byteArray.Length;
    request.ContentType = @"application/json";

    using (Stream dataStream = request.GetRequestStream()) {
        dataStream.Write(byteArray, 0, byteArray.Length);
    }
    long length = 0;
    try {
        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) {
            length = response.ContentLength;
        }
    }
    catch (WebException ex) {
        // Log exception and throw as for GET example above
    }
}

Bizim web servis otomatik testlerde bu gibi bir kod kullanıyorum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DroidModderX ROOT Master

    DroidModderX

    14 ŞUBAT 2011
  • Vintendo Power

    Vintendo Pow

    2 Ocak 2007
  • XxMinayaxX1

    XxMinayaxX1

    9 Mayıs 2012