2014-03-04 3 views
0

Я пытаюсь использовать JSON из своего приложения ASP.NET Web API от клиента Java.Как интегрироваться с приложением ASP.NET Web API из Java-клиента

Я могу легко сделать это от клиента .net. Но не могу найти способ сделать это в JAVA. Я прочесываю сеть безрезультатно.

Любая помощь была бы искренне оценена.

Вот код контроллера.

public class OrderController : ApiController 
    { 
    private SuperiorPizzaEntities1 db = new SuperiorPizzaEntities1(); 

    // GET api/Order 
    public IEnumerable<Order> GetOrders() 
    { 
     List<Order> orders = db.Orders.ToList(); 
     return orders; 
    } 

... More controller methods here. 
    } 


    /// Orders Class 

    public partial class Order 
    { 
     public Order() 
     { 
      this.OrderDetails = new HashSet<OrderDetail>(); 
     } 

     public int OrderID { get; set; } 
     public int UserID { get; set; } 
     public System.DateTime CreatedDate { get; set; } 

     public virtual UserAddress UserAddress { get; set; } 
     public virtual ICollection<OrderDetail> OrderDetails { get; set; } 
    } 

Следующий код клиента Java. Это код, который я написал, чтобы попытаться расшифровать JSON

/// Java code 
import java.io.BufferedReader; 
import java.io.DataOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.lang.Object; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import javax.json.*; 
import javax.json.stream.*; 
import javax.json.stream.JsonParser.Event; 

public class JSONReader { 

public static void main(String[] args) { 
    try { 
     URL url = new URL("http://MyServer/WebAPIs/api/Order"); 
     InputStream is = url.openStream(); 
     JsonParser parser = Json.createParser(is); 
     { 
      while (parser.hasNext()) 
      { 
       Event e = parser.next(); 
       if (e == Event.KEY_NAME) 
       { 
        switch (parser.getString()) 
        { 
         case "name": 
            parser.next(); 
            System.out.print(parser.getString()); 
            System.out.print(": "); 
            break; 
         case "message": 
            parser.next(); 
            System.out.println(parser.getString()); 
            System.out.println("---------"); 
            break; 
         default: 
            //parser.next(); 
            System.out.println(parser.getString()); 
            System.out.println("---------"); 
            break; 
           } 
          } 
         } 
        } 
       } 
     catch(IOException exc) 
     { 
      System.out.println("There was an error creating the HTTP Call: " +      exc.toString()); 
     } 
    } 

Еще раз спасибо

+1

Множество примеров Java здесь, используя различные утилиты: http://howtodoinjava.com/restful-web-service/ –

ответ

0

Я бы попытаться уйти от ручного разбора Json. Я использую библиотеку Google GSON для сериализации JSON в настоящий экземпляр класса Java. Вот краткий пример.

Смежные вопросы