【问题标题】:Passing network credentials to web service via android通过android将网络凭据传递给Web服务
【发布时间】:2012-01-16 08:10:16
【问题描述】:

我一直在尝试连接需要访问凭据的 Web 服务,但没有成功。我正在使用 ksoap2 并且我知道代码可以工作(在将 Web 服务放在服务器上之前,我已经将它与本地主机一起使用)我也知道服务器工作得很好,因为我制作了访问服务器的 ac# 程序就好了.如果有人能告诉我如何传递用户名和密码,我将不胜感激。

编辑: 我的问题已解决,我将用于修复它的代码放在下面。

        List<HeaderProperty> headers = new ArrayList<HeaderProperty>();
    headers.add(new HeaderProperty("Authorization", "Basic "+Base64.encode("Username:Password".getBytes())));

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

/

 androidHttpTransport.call(SOAP_ACTION, envelope,headers);

【问题讨论】:

  • 也许这个类似的问题可能对您有所帮助:stackoverflow.com/questions/5501743/…
  • 你是如何配置服务来获取用户名和密码的?
  • 在我的情况下,该服务不需要凭据。在我工作的地方,服务器需要身份验证才能连接到它。上述方式存储用户名并传入 XML 标头。 Parth_90 有一个你似乎想要的例子。如果您还需要什么,请告诉我

标签: java android web-services credentials ksoap2


【解决方案1】:

1.ksoap2 有两个版本来访问网络服务。 SoapEnvelope.VER10 & SoapEnvelope.VER11 & SoapEnvelope.VER12,请查收;

2.你会在AndroidManifast.xml中添加权限吗?

<uses-permission android:name="android.permission.INTERNET" />

3.WebService是基于HTTP还是HTTPS? 在您的代码中,它们是 HttpTransportSE 或 HttpsServiceConnectionSE。

4.如果您的模拟器连接到互联网,请检查“3G”符号。

5.最后,这也与ksoap2.jar的版本混淆了。

【讨论】:

  • 我能够访问服务就好了,当服务器需要凭据时,我的错误发生了。
【解决方案2】:

我以前做过类似的事情。我创建了一个 Android 应用程序,它使用 ksoap 访问 Web 服务以进行用户身份验证。

您可以参考How to call a local web service from Android Mobile App

检查我在那里发布的答案。这正是您要寻找的。我基本上是将用户凭据传递给我的网络服务进行身份验证。

希望对你有帮助

干杯

【讨论】:

  • 在您的应用程序上,您连接到服务以进行身份​​验证,您有一个传入参数的函数,但在我的服务器上,服务器需要用户名和密码才能访问服务器,然后我才能访问网络服务。
【解决方案3】:

如果您只想发送用户名和密码,请检查 Parth_90 答案。

但是,如果您想使用 HTTPS,那么我认为这会有所帮助:https://groups.google.com/forum/#!topic/android-developers/GsK4UeByabo (检查第一个答案)。

【讨论】:

  • 我已经有一个证书,但我无法将用户名和密码传递给服务器。在您发送给我的链接中,他们收到错误“javax.net.ssl.SSLException:不受信任的服务器证书”我在编译时没有收到任何错误,当我到达服务器时出现问题。服务器回复了一些 XML,说明您无权查看此页面。很抱歉,我应该更清楚我收到的错误。
猜你喜欢
  • 1970-01-01
  • 2013-09-13
  • 1970-01-01
  • 1970-01-01
  • 2013-09-21
  • 1970-01-01
  • 1970-01-01
  • 2012-04-12
  • 1970-01-01
相关资源
最近更新 更多