2016-07-10 156 views
0

我有一個curl命令完美的作品 在POST請求的其他參數發送用戶名和密碼捲曲--request POST --user [email protected]:密碼http://localhost:8080/api/uploadmydata -d「參數1 = 300'Android的凌空如何使用凌空

但我無法用凌厲的手段做同樣的事情。 我當前的代碼是:

公共靜態無效tryUploading(最終活動活動){

StringRequest stringRequest = new StringRequest(Request.Method.POST, BackendConnection.uploadDataUrl, 
      new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 

       } 
      }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        //textPrompt.setText("Wrong User name or Password"); 
       } 
      }){ 
     @Override 
     public Map<String, String> getHeaders() { 
      Map<String, String> params = new HashMap<String, String>(); 
      params.put(
        "Authorization", 
        String.format("Basic %s", Base64.encodeToString(
          String.format("%s:%s", "[email protected]", "password").getBytes(), Base64.DEFAULT))); 
      params.put("param1", 300); 

      return params; 
     } 
    }; 

    RequestQueue requestQueue = Volley.newRequestQueue(activity); 
    requestQueue.add(stringRequest); 
} 

我使用的春天啓動的服務器。在服務器上面的代碼觸發驗證用戶名和密碼,但未能達到預期的URL。 如何在curl請求中添加用戶credentails和參數,就像我們在curl中所做的那樣--user和-d?

+0

看這裏http://stackoverflow.com/questions/37908320/failed-to-send-parameter-to-php-post-parameter-android/37909623#37909623 –

+0

@SohailZahid在鏈接中,你不重寫getHeaders ()並且不發送用戶名和密碼。我知道如何發送參數。但是,如何使用憑據發送它是我正在尋找的。 – Prasad

+0

你爲什麼要重寫'getHeaders',你可以用安全加密文件中的參數發送它們。 –

回答

0

由於我看不到您的應用程序中使用的網址,我只需要說明您在CURL中使用的是相同的。

另外,由於本地主機引用的是同一設備,所以還必須相應地更改應用中的IP地址,以確保您的CURL在運行服務器的計算機上執行。

所以,除非你的服務器不能在智能手機上運行,​​否則你必須使用計算機的IP地址,而不是本地主機。

+0

BackendConnection.uploadDataUrl具有服務器的URL – Prasad

+0

@Prasad我知道這一點。我只是認爲你也可以在那裏使用「localhost」,除非服務器真的在手機上運行,​​否則這種做法不會有太大幫助, – Endzeit