我从这边使用SSL Socket和Trustmanager 自签名SSL
但我不断收到以下错误:
09-28 19:52:41.942:WARN/System.err(10101):javax.net.ssl.SSLHandshakeException:org.bouncycastle.jce.exception.ExtCertPathValidatorException:无法验证证书签名.
怎么了?我已经在stackoverflow上检查了不同的帖子,但我似乎无法让它工作.
我的代码:
SchemeRegistry schemeRegistry = new SchemeRegistry();
// http scheme
schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
// https scheme
schemeRegistry.register(new Scheme("https", new EasySSLSocketFactory(), 443));
params = new BasicHttpParams();
params.setParameter(ConnManagerPNames.MAX_TOTAL_CONNECTIONS, 1);
params.setParameter(ConnManagerPNames.MAX_CONNECTIONS_PER_ROUTE, new ConnPerRouteBean(1));
params.setParameter(HttpProtocolParams.USE_EXPECT_CONTINUE, false);
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, "utf8");
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(new AuthScope("www.example.com", AuthScope.ANY_PORT),
new UsernamePasswordCredentials("user", "password"));
clientConnectionManager = new ThreadSafeClientConnManager(params, schemeRegistry);
context = new BasicHttpContext();
context.setAttribute("http.auth.credentials-provider", credentialsProvider);
DefaultHttpClient client = new DefaultHttpClient(clientConnectionManager, params);
HttpGet get = new HttpGet("https://www.example.com/web/restricted/form/formelement=512663");
HttpResponse response = client.execute(get, …Run Code Online (Sandbox Code Playgroud) 我想找到元素"buddyname"并在HTML文件中获取value =""的元素,我将其放入StringBuffer,在本例中为5342test.value =""中的元素可以更改,因此我无法直接搜索5342test.
<fieldset style="display:none"><input type="hidden" name="buddyname" value="5342test"/></fieldset>
Run Code Online (Sandbox Code Playgroud)
我怎么能用jsoup做到这一点?或者是否有一种更简单的方法,我已经尝试过Pattern/Matcher,但是因为我遇到了问题而没有成功Pattern.compile("<input[^>]*?value\\s*?=\\s*?\\\"(.*?)\\\")");
下面是一些示例代码.先感谢您.
Document doc = Jsoup.parse(page); // page is a StringBuffer
Elements td = doc.select("fieldset");
for (Element td : tds) {
String tdText = td.text();
System.out.println(tdText);
}
Run Code Online (Sandbox Code Playgroud) 嗨我有一个class(MyCustomForm.xml),我用它作为LoginForm用户.现在我想保存,并从用户名(装载值EditText),从LoginForm使用SharedPreferences,但我不知道如何设置用户名通过保存的值SharedPreferences入EditText的LoginForm(MyCustomForm.xml).
我想OnPause在我的Main.xml中保存值并OnCreate在类中加载值MyCustomForm.xml
一般我想使用全球SharedPreferences.
这看起来怎么样?有人可以帮我走上正轨吗?
它在想这样的事情Main.xml:
public class AndroidLogin extends Activity implements OnClickListener {
@Override
protected void onPause() {
super.onPause();
Editor e = mPrefs.edit();
e.putString(USERNM, username);
e.commit();
}
}
Run Code Online (Sandbox Code Playgroud)
代码MyCustomForm (LoginForm):
public class MyCustomForm extends Dialog {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(com.sencide.R.layout.inlogdialog);
EditText userTest = (EditText)findViewById(R.id.txtUserName);
userTest.setText(USERNM);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试解析一个非常好的DTD html文件,我通过JSOUP的输入流检索,并获取TD字段中的所有数据.我怎么能用JSoup做到这一点?我已经查看了http://jsoup.org/cookbook/但是我应该用som示例来启动它.
先感谢您.
我已经尝试过saxparser,但我不能让DTD工作.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl">
<TABLE class=personaltable cellSpacing=0 cellPadding=0>
<TBODY>
<TR class=alternativerow>
<TD>Nieuw beltegoed:</TD>
<TD>€ 1,00</TD></TR>
<TR>
<TD>Tegoed vorige periode:
<TD>€ 2,00</TD></TD></TR>
<TR class=alternativerow>
<TD>Tegoed tot 09-11-2011:
<TD>€ 10,00</TD></TD></TR>
<TR>
<TD>
<TD height=25></TD>
<TR class=alternativerow>
<TD>Verbruik sinds nieuw tegoed:</TD>
<TD>€ 0,33</TD></TR>
<TR>
<TD>Ongebruikt tegoed:</TD>
<TD>€ 12,00</TD></TR>
<TR class=alternativerow>
<TD class=f-Orange>Verbruik boven bundel:</TD>
<TD class=f-Orange>€ 0,00</TD></TR>
<TR>
<TD>Verbruik dat niet in de bundel zit*:</TD>
<TD>€ 0,00</TD></TR>
</TBODY> …Run Code Online (Sandbox Code Playgroud) 我有一个在AsyncTask中运行的ProgressDialog.我试图实现,只要缓冲区的长度更大,然后说10000,来自ProgressDialog的消息就会发生变化.
有人可以帮帮我吗,这可能吗?先感谢您.
@Override
protected void onProgressUpdate(Integer... progUpdate) {
if (progUpdate[0] >= 10000){
progress.setMessage("Informatie wordt opgehaald....");
}
}
Run Code Online (Sandbox Code Playgroud)
缓冲区是在AsyncTask doInBackGround中创建的:
try {
HttpResponse response = httpClient.execute(request);
System.out.println("Response: " + response.getEntity().getContentLength());
/******* READ CONTENT IN BUFFER *******/
InputStream inputStreamActivity = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStreamActivity));
StringBuilder sb = new StringBuilder();
String line = null;
int count = sb.length();
while ((line = reader.readLine()) != null) {
sb.append(line);
publishProgress(sb.length());
}
/******* CLOSE CONNECTION AND STREAM *******/
System.out.println(sb);
inputStreamActivity.close();
kpn = sb.toString();
httpClient.getConnectionManager().shutdown(); …Run Code Online (Sandbox Code Playgroud)