2013-05-10 4 views
5

मेरे पास एंड्रॉइड में एक एप्लीकेशन है, जिसमें मैं रिमोट सर्वर से फाइलें पढ़ रहा था, फाइल पढ़ने के लिए कोड नीचे दिया गया है;एंड्रॉइड में माइक्रोसॉफ्ट आईएसए सर्वर प्रमाणीकरण

  URI uri = null; 
      try { 
       uri = new URI("http://192.168.1.116/Server1/Users.xml"); 
      } catch (URISyntaxException e) { 
       e.printStackTrace(); 
      } 
      HttpGet httpget = new HttpGet(uri); 
      httpget.setHeader("Content-type", "application/json; charset=utf-8"); 
      httpget.setHeader("host", "192.168.1.116"); 

      HttpResponse response = null; 
      try { 
       response = httpClient.execute(httpget); 

      } catch (ClientProtocolException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

      HttpEntity responseEntity = response.getEntity(); 
      String result = null; 
      try { 
       result = EntityUtils.toString(responseEntity); 
       Log.d("SERVER1", result); 
      } catch (ParseException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

अब सभी दूरस्थ फ़ाइलें प्रॉक्सी (माइक्रोसॉफ्ट आईएसए सर्वर) के पीछे हैं जिन्हें फ़ाइलों तक पहुंचने के लिए प्रमाणीकरण की आवश्यकता है। कृपया मुझे गाइड करें कि मैं फ़ाइलों तक पहुंचने के लिए एंड्रॉइड से प्रमाणीकरण पैरामीटर कैसे पास कर सकता हूं।

मैं निम्नलिखित कोड की कोशिश की है, लेकिन बेकार,

  URL uri = null; 
      try { 
       uri = new URI("http:// 192.168.1.116/CookieAuth.dll?Logon"); 
      } catch (URISyntaxException e) { 
       e.printStackTrace(); 
      } 

      DefaultHttpClient httpclient = new DefaultHttpClient(); 
      httpclient.getCredentialsProvider() 
        .setCredentials(
          AuthScope.ANY, 
          new NTCredentials(username, password, deviceIP, 
            domainName)); 

      HttpPost httppost = new HttpPost(uri); 
      httppost.setHeader("Content-type", 
        "application/x-www-form-urlencoded"); 
      List<NameValuePair> params = new ArrayList<NameValuePair>(); 
      params.add(new BasicNameValuePair("curl", "Z2FServer1/users.xmlZ2F")); 
      params.add(new BasicNameValuePair("formdir", "3")); 
      params.add(new BasicNameValuePair("username", "test")); 
      params.add(new BasicNameValuePair("password", "test")); 

      UrlEncodedFormEntity ent = null; 
      try { 
       ent = new UrlEncodedFormEntity(params, HTTP.UTF_8); 
      } catch (UnsupportedEncodingException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 
      httppost.setEntity(ent); 
      try { 
       response = httpclient.execute(httppost); 

       Log.i("Test", response.getStatusLine().toString()); 

       HttpEntity entity = response.getEntity(); 

       if (entity != null) { 

        InputStream instream = entity.getContent(); 
        result = convertStreamToString(instream); 
        Log.d("ISA Server", result); 

        instream.close(); 
       } 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

लेकिन यह HTTP1.1 500 आंतरिक सर्वर त्रुटि दे रही है। मैं भी नीचे दिए गए लिंक, लेकिन एक ही त्रुटि https://stackoverflow.com/a/10937857/67381

उत्तर

1

की कोशिश की है मेरे मामले में मैं का उपयोग

public static DefaultHttpClient getClient(String username, String password, 
     Integer timeOut) { 
    HttpParams httpParams = new BasicHttpParams(); 
    HttpConnectionParams.setConnectionTimeout(httpParams, timeOut); 
    HttpConnectionParams.setSoTimeout(httpParams, timeOut); 
    DefaultHttpClient retHttpClient = new DefaultHttpClient(httpParams); 
    if (username != null) { 
     retHttpClient.getCredentialsProvider().setCredentials(
       new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), 
       new UsernamePasswordCredentials(username, password)); 
    } 

    return retHttpClient; 
} 

प्रयास करें, काम करता है हो सकता है।

पीएस

यह ईसा के लिए नहीं है, एमएस सी # WebService आवेदन के लिए, लेकिन शायद ...

+0

मैं HTTP हो रही है/1.1 500 (अनिर्दिष्ट त्रुटि)। – Siddiqui

+0

सर्वर लॉग इन? यहां अपवाद हो सकता है? –

संबंधित मुद्दे