title: Shared Access Policy Creation in Azure IoT Hub using Rest API
body: <p>I am new to azure iot. and i am trying to create shared access policies in azure iot hub using its rest api.</p>
  
  <pre><code> https://management.azure.com/subscriptions/{subscription-Id}/resourceGroups/{group-name}/providers/Microsoft.Devices/IotHubs/{hub-name}?api-version=2016-02-03");
  </code></pre>
  
  <p>and my java code is</p>
  
  <pre><code>     String policyold = "{\"tags\" : {}, \"location\": \"East Asia\",\"properties\" : \"authorizationPolicies\" : [{\"name\" : \"policy-namw\", \"primaryKey\" : \"{mykey}\" ,\"secondaryKey\" : \"secondary-key\" ,\"permissions\" :[\"ServiceConnect\" ,\"RegistryRead\" ,\"RegistryWrite\" ,\"DeviceConnect\"]}],\"eventHubEndpoints\" : { \"events\" : {\"messageRetentionInDays\":\"2\"}}}";
  
  
      StringEntity input1 = new StringEntity(policyold);
      input1.setContentType("application/json");
      input1.setContentEncoding("UTF8");
      put.setEntity(input1);
  
      put.setHeader("Authorization", token);
      HttpResponse r2 = httpclient2.execute(put);
      System.out.println(r2.getStatusLine());
      String content2 = EntityUtils.toString(r2.getEntity());
      org.json.JSONObject recvObj2 = new org.json.JSONObject(content2);
  </code></pre>
  
  <p>but i am facing the followiing error.</p>
  
  <pre><code> HTTP/1.1 400 Bad Request  {"error":{"code":"InvalidRequestContent","message":"The request content was invalid and could not be deserialized: 'Error converting value \"authorizationPolicies\" to type 'System.Collections.Generic.Dictionary`2[System.String,Newtonsoft.Json.Linq.JToken]'. Path 'properties', line 1, position 76.'."}}
  </code></pre>
  
  <p>Moreover i am using this tutorial.<a href="https://msdn.microsoft.com/en-us/library/mt589015.aspx" rel="nofollow">https://msdn.microsoft.com/en-us/library/mt589015.aspx</a></p>
  
  <p>Can any one help me in solving this? </p>