2016-06-13 2 views
0

Я пытаюсь разработать клиентскую программу, которая создает идентификатор устройства благодаря лазурной. im используя лазурный отдых, чтобы создать его, поэтому я вызываю этот веб-сервис из клиентской программы, используя реализацию jersey, но я получаю ошибку com.sun.jersey.api.client.ClientHandlerException: java.net.SocketException: Сокет не подключен: connect Я тестирую его, используя почтальон, он работает и работает на python. вот мой Java-код:не удается подключиться к веб-сервису лазурного останова

public class Test { 

    public static void main(String[] args) { 

     try { 

      Client client = Client.create(); 

      WebResource webResource = client 
        .resource("https://xxxx-iot-hub.azure-devices.net/devices"); 

      ClientResponse response =  webResource.path("/iotdevice1").queryParam("top", "100").queryParam("api-version", "2016-02-03").header("Content-Type", "application/json") 
        .header("Authorization", "SharedAccessSignature sr=xxxxx-iot-hub.azure-devices.net&sig=Yxxxxxxxxxx=1497357420&skn=iothubowner") 
        .put(ClientResponse.class); 



      String output = response.getEntity(String.class); 

      System.out.println("Output from Server .... \n"); 
      System.out.println(output); 

     } catch (Exception e) { 

      e.printStackTrace(); 

     } 
    } 

} 

Благодаря

+0

Проверьте конфигурацию брандмауэра. –

ответ

0

По вашему коду, кажется, что вы хотите создать новую идентичность устройства с помощью REST API с HTTP PUT метод.

Однако в вашем коде параметр запроса top=100 не требуется, а тело запроса {deviceId: "iotdevice1"} отсутствует.

Вот мой рабочий код.

String body = "{deviceId: \"iotdevices1\"}"; 
ClientResponse response = webResource.path("/iotdevices1").queryParam("api-version", "2016-02-03") 
        .header("Content-Type", "application/json") 
        .header("Authorization", 
          "SharedAccessSignature sr=xxxx.azure-devices.net&sig=xxxxxxxx&se=1497357420&skn=iothubowner") 
        .put(ClientResponse.class, body); 

Надеюсь, что это поможет. Любое беспокойство, пожалуйста, не стесняйтесь, дайте мне знать.


Update:

Для удаления существующего идентификатора устройства, пожалуйста, см REST API ссылку и посмотреть код, приведенный ниже.

ClientResponse response = webResource.path("/iotdevices1").queryParam("api-version", "2016-02-03") 
        .header("Content-Type", "application/json") 
        .header("If-Match", "*") 
        .header("Authorization", 
          "SharedAccessSignature sr=xxxx.azure-devices.net&sig=xxxxxx&se=1497490976&skn=iothubowner") 
        .delete(ClientResponse.class); 

Обращаем внимание на заголовок If-Match.

+0

Спасибо, что это работает. Можете ли вы показать мне, как удалить устройство с помощью этого остального? Я попытался, но он не работает. – user3499324

+0

@ user3499324 Я обновляю код для удаления идентификатора устройства. –

+0

Большое вам спасибо – user3499324

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

  • Нет связанных вопросов^_^