public ServerInfoJson getServerInfo(HttpUrl serverUrl, String serverID, String id)
      throws IOException {
    // set timeout to 30 seconds
    OkHttpClient client =
        defaultClient
            .newBuilder()
            .connectTimeout(30, TimeUnit.SECONDS)
            .readTimeout(30, TimeUnit.SECONDS)
            .build();

    JsonObject jsonObject = new JsonObject();
    jsonObject.addProperty("version", 1);
    jsonObject.addProperty("command", "get_server_info");
    jsonObject.addProperty("stop_when_error", "false");
    jsonObject.addProperty("stop_when_success", "false");
    jsonObject.addProperty("id", id);
    jsonObject.addProperty("serverID", serverID);
    RequestBody requestBody =
        RequestBody.create(MediaType.parse("text/plain"), gson.toJson(jsonObject));
    Request request = new Request.Builder().url(serverUrl).post(requestBody).build();
    Response response = client.newCall(request).execute();
    InputStream in = response.body().byteStream();
    JsonReader reader = null;
    ServerInfoJson serverInfoJson = null;
    try {
      reader = new JsonReader(new InputStreamReader(in, "UTF-8"));
      serverInfoJson = gson.fromJson(reader, ServerInfoJson.class);
    } finally {
      if (reader != null) {
        reader.close();
      }
    }

    if (serverInfoJson != null) {
      if (serverInfoJson.server != null) {
        // server info found!
        return serverInfoJson;
      } else if (serverInfoJson.sites != null && !serverInfoJson.sites.isEmpty()) {
        String site = serverInfoJson.sites.get(0);
        return getServerInfo(
            new HttpUrl.Builder().scheme("http").host(site).addPathSegment("Serv.php").build(),
            serverID,
            id);
      }
    }

    throw new IOException("No server info found!");
  }
  public RpcRequest(int xid, String service, String method, List<Object> params) {
    header = new RequestHeader();
    header.msgType = Rpc.MSG_CALL;
    header.xid = xid;

    cbody = new RequestBody();
    cbody.service = service;
    cbody.method = method;
    cbody.params = params;
  }
Beispiel #3
0
 public Response post(String url, byte[] body, StringMap headers, String contentType)
     throws QiniuException {
   RequestBody rbody;
   if (body != null && body.length > 0) {
     MediaType t = MediaType.parse(contentType);
     rbody = RequestBody.create(t, body);
   } else {
     rbody = RequestBody.create(null, new byte[0]);
   }
   return post(url, rbody, headers);
 }
Beispiel #4
0
 private byte[] generateBody() throws IOException {
   RequestBody body = mRequest.body();
   if (body != null) {
     ByteArrayOutputStream out = new ByteArrayOutputStream();
     BufferedSink sink = Okio.buffer(Okio.sink(out));
     body.writeTo(sink);
     sink.flush();
     return out.toByteArray();
   } else {
     return null;
   }
 }
Beispiel #5
0
  /**
   * Uploads the image to the server
   *
   * @param b
   * @param listener
   */
  public void uploadImage(final Bitmap b, final OnResponseListener listener) {
    OkHttpClient httpClient = new OkHttpClient();
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    // encode image as PNG, re-encoding as JPG may cause compression artefacts to be visible
    b.compress(Bitmap.CompressFormat.PNG, 0, bos);

    RequestBody requestBody =
        new MultipartBuilder()
            .type(MultipartBuilder.FORM)
            .addPart(
                // the filename parameter is needed to specify that this is indeed a file and not an
                // inline
                // attachment
                Headers.of(
                    "Content-Disposition", "form-data; name=\"image\"; filename=\"image.png\""),
                RequestBody.create(MediaType.parse("image/png"), bos.toByteArray()))
            .build();
    Request request = new Request.Builder().url(UPLOAD_ENDPOINT).post(requestBody).build();

    Call call = httpClient.newCall(request);
    call.enqueue(
        new Callback() {
          @Override
          public void onFailure(Request request, IOException e) {}

          @Override
          public void onResponse(Response response) throws IOException {
            listener.onResponse(new ServerResponse(response.code(), response.body().string()));
          }
        });
  }
Beispiel #6
0
    private String sendPop(Transaction tx) {
      RequestBody requestBody =
          RequestBody.create(MediaType.parse("application/bitcoin-pop"), tx.toBytes());

      URL url;
      try {
        url = new URL(popRequest.getP());
        if (!"http".equals(url.getProtocol()) && !"https".equals(url.getProtocol())) {
          return "Invalid Url, expected protocol http or https: " + popRequest.getP();
        }
      } catch (MalformedURLException e) {
        return "Invalid Url: " + popRequest.getP();
      }

      Request request = new Request.Builder().url(url).post(requestBody).build();

      OkHttpClient httpClient = new OkHttpClient();
      if (_mbwManager.getTorMode() == ServerEndpointType.Types.ONLY_TOR
          && _mbwManager.getTorManager() != null) {
        httpClient = _mbwManager.getTorManager().setupClient(httpClient);
      }

      try {
        Response response = httpClient.newCall(request).execute();
        if (response.isSuccessful()) {
          return response.body().string();
        } else {
          return "Error occurred: " + response.code();
        }
      } catch (IOException e) {
        return "Cannot communicate with server: " + e.getMessage();
      }
    }
Beispiel #7
0
 public Response multipartPost(
     String url,
     StringMap fields,
     String name,
     String fileName,
     File fileBody,
     String mimeType,
     StringMap headers)
     throws QiniuException {
   RequestBody file = RequestBody.create(MediaType.parse(mimeType), fileBody);
   return multipartPost(url, fields, name, fileName, file, headers);
 }
    public void writeTo(BufferedSink bufferedsink)
        throws IOException
    {
        int i = 0;
        for (int k = partHeaders.size(); i < k; i++)
        {
            Object obj = (Headers)partHeaders.get(i);
            RequestBody requestbody = (RequestBody)partBodies.get(i);
            bufferedsink.write(MultipartBuilder.access$000());
            bufferedsink.write(boundary);
            bufferedsink.write(MultipartBuilder.access$100());
            if (obj != null)
            {
                int j = 0;
                for (int l = ((Headers) (obj)).size(); j < l; j++)
                {
                    bufferedsink.writeUtf8(((Headers) (obj)).name(j)).write(MultipartBuilder.access$200()).writeUtf8(((Headers) (obj)).value(j)).write(MultipartBuilder.access$100());
                }

            }
            obj = requestbody.contentType();
            if (obj != null)
            {
                bufferedsink.writeUtf8("Content-Type: ").writeUtf8(((MediaType) (obj)).toString()).write(MultipartBuilder.access$100());
            }
            long l1 = requestbody.contentLength();
            if (l1 != -1L)
            {
                bufferedsink.writeUtf8("Content-Length: ").writeUtf8(Long.toString(l1)).write(MultipartBuilder.access$100());
            }
            bufferedsink.write(MultipartBuilder.access$100());
            ((RequestBody)partBodies.get(i)).writeTo(bufferedsink);
            bufferedsink.write(MultipartBuilder.access$100());
        }

        bufferedsink.write(MultipartBuilder.access$000());
        bufferedsink.write(boundary);
        bufferedsink.write(MultipartBuilder.access$000());
        bufferedsink.write(MultipartBuilder.access$100());
    }
 /**
  * Is this action input parameter required.
  *
  * @return true if required
  */
 public boolean isRequired() {
   boolean ret;
   if (isRequestBody()) {
     ret = requestBody.required();
   } else if (isRequestParam()) {
     ret = !(isDefined(requestParam.defaultValue()) || !requestParam.required());
   } else if (isRequestHeader()) {
     ret = !(isDefined(requestHeader.defaultValue()) || !requestHeader.required());
   } else {
     ret = true;
   }
   return ret;
 }
  public ServerInfoJson requestTunnel(ServerInfoJson infoJson, String serverID, String id)
      throws IOException {
    if (infoJson == null || infoJson.env == null || Util.isEmpty(infoJson.env.control_host)) {
      return null;
    }

    // set timeout to 30 seconds
    OkHttpClient client =
        defaultClient
            .newBuilder()
            .connectTimeout(30, TimeUnit.SECONDS)
            .readTimeout(30, TimeUnit.SECONDS)
            .build();

    final String server = infoJson.env.control_host;

    JsonObject jsonObject = new JsonObject();
    jsonObject.addProperty("command", "request_tunnel");
    jsonObject.addProperty("version", 1);
    jsonObject.addProperty("serverID", serverID);
    jsonObject.addProperty("id", id);

    RequestBody requestBody =
        RequestBody.create(MediaType.parse("text/plain"), gson.toJson(jsonObject));
    Request request =
        new Request.Builder()
            .url(HttpUrl.parse("http://" + server + "/Serv.php"))
            .post(requestBody)
            .build();
    Response response = client.newCall(request).execute();
    JsonReader reader = null;
    try {
      InputStream in = response.body().byteStream();
      reader = new JsonReader(new InputStreamReader(in, "UTF-8"));
      return gson.fromJson(reader, ServerInfoJson.class);
    } finally {
      if (reader != null) {
        reader.close();
      }
    }
  }
Beispiel #11
0
 public er method(String s, RequestBody requestbody)
 {
     if (s == null || s.length() == 0)
     {
         throw new IllegalArgumentException("method == null || method.length() == 0");
     }
     if (requestbody != null && !HttpMethod.permitsRequestBody(s))
     {
         throw new IllegalArgumentException((new StringBuilder()).append("method ").append(s).append(" must not have a request body.").toString());
     }
     RequestBody requestbody1 = requestbody;
     if (requestbody == null)
     {
         requestbody1 = requestbody;
         if (HttpMethod.permitsRequestBody(s))
         {
             requestbody1 = RequestBody.create(null, Util.EMPTY_BYTE_ARRAY);
         }
     }
     method = s;
     body = requestbody1;
     return this;
 }
Beispiel #12
0
 String put(String url, String json) throws IOException {
   RequestBody body = RequestBody.create(JSON, json);
   Request request = new Request.Builder().url(url).put(body).build();
   Response response = client.newCall(request).execute();
   return response.body().string();
 }