我正在尝试加载一个url,它将在WebView中显示一个图像。
在加载url之前,我需要传递凭据(用户名和密码)。
在这里,url由具有ntlm身份验证的服务器托管。
我可以点击另一个这样的网址并获取数据。但我如何在android中为aWebView做同样的事情呢?

最佳答案

您可以使用Chilkat Library进行ntlm身份验证。
下载Java类(包含在下载部分中的zip文件中)
并将包添加到/src文件夹中。包名是com.chilkatsoft
将库添加到/libs文件夹。
Chilkat库文件夹是:
阿米巴比
阿美比欧V7A
MIPS
x86

public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    boolean success;
    success = http.UnlockComponent("anything");
    if (success != true) {
        return;
    }

    http.put_Login("<Username>");
    http.put_Password("<Password>");
    http.put_NtlmAuth(true);
    http.put_SessionLogFilename("ntlmAuthLog.txt");
    String html;
    html = http.quickGetStr("http://websitewithntlmnauthentication.com");
    //load the data to a webview from the string "html".
    webView.loadUrl(html,"","UTF-8"); }

并在onCreate()之后添加:
static {
          // Important: Make sure the name passed to loadLibrary matches the shared library
          // found in your project's libs/armeabi directory.
          //  for "libchilkat.so", pass "chilkat" to loadLibrary
          //  for "libchilkatemail.so", pass "chilkatemail" to loadLibrary
          //  etc.
          //
          System.loadLibrary("chilkat");

          // Note: If the incorrect library name is passed to System.loadLibrary,
          // then you will see the following error message at application startup:
          //"The application <your-application-name> has stopped unexpectedly. Please try again."
      }

08-27 22:08