ここに、接続要求を行うために書き込むコードの例を示します。 この例では、忘れたときに新しいパスワードをユーザーに送信しています。しかし、リクエストがサーバー側のforget.phpに送られたとき、電子メールは自動的に送信されますが、readResponseメソッドはダイアログを表示する前にあまり時間がかかりますが、これは低接続の問題ではありません。高速接続接続要求にpostResponse時間がかかる
サーバー側がジョブを完了したら、readResponseメソッドを呼び出すにはどうすればいいですか?ここ
<?php
include("connexion_base.php");
$email=mysql_escape_string($_POST["email"]);
$select=mysqli_query(connection(),"select * from users where email='$email'");
if($r=mysqli_fetch_array($select)){
$pw=$r["pw"];
mail($email,"foganbidi","Your password is:\n$pw\n","From:foganbidi");
$sms.="Your password is:$pw";
}else{
mail($email,"[email protected]","The email you submited does not exist in our database","From:foganbidi");
$sms.="The email you submited does not exist in our database";
}
$data=array("reponse"=>$sms);
header("Content-Type:application/json");
echo json_encode($data);
?>
、私が返されたコードを確認し、それでも非常に遅い実行されている方法である:ここ
ConnectionRequest requette=new ConnectionRequest(){
Map data;
@Override
protected void postResponse(){
String donnees=(String)data.get("reponse");
Dialog.show("", "An email has been sent to you on "+em+"\nPlease check it to found out your password", "OK",null);
}
@Override
protected void readResponse(InputStream input)throws IOException{
JSONParser parser=new JSONParser();
data=parser.parseJSON(new InputStreamReader(input));
}
};
requette.setUrl(new ServerUrl().getServerUrl()+"/forget.php");
requette.setPost(true);
requette.setTimeout(15000);
requette.addArgument("email", em);
requette.setDisposeOnCompletion(new LoadingDialog(new Form()));
NetworkManager.getInstance().addToQueueAndWait(requette);
は次のように探してFIS「forget.php」サーバサイドスクリプトは方法の例ですしかし、ブラウザでリンクが実行され、高速
int rc=this.getResponseCode();
if(rc==200){
System.out.println("the code is "+rc);
JSONParser parser=new JSONParser();
InputStreamReader is=new InputStreamReader(input);
data=parser.parseJSON(is);
System.out.println("the data is "+data);
}
と私は別のプロジェクトで行ったこの単純な要求のために、それはデータを読み込む前に、シミュレータで20秒を要し
#private void connect() {
ConnectionRequest r=new ConnectionRequest(){
Map data;
@Override
protected void handleException(Exception err){
System.out.println("error coming from exception "+err.getMessage());
}
@Override
protected void handleRuntimeException(RuntimeException err){
System.out.println("error coming from runtime "+err.getMessage());
}
@Override
protected void handleErrorResponseCode(int code, String message){
System.out.println("ther response code is "+code+" and the message is "+message);
}
@Override
protected void postResponse(){
System.out.println("ok for the data "+data);
}
@Override
protected void readResponse(InputStream input)throws IOException{
int rc=this.getResponseCode();
if(rc==200){
JSONParser parser=new JSONParser();
InputStreamReader is=new InputStreamReader(input);
data=parser.parseJSON((Reader)is);
}
}
};
r.setUrl("http://localhost/craig/test2.php");
r.setTimeout(5000);
r.setPost(true);
r.addArgument("nom", "faugan");
InfiniteProgress progression=new InfiniteProgress();
Dialog dd=progression.showInifiniteBlocking();
r.setDisposeOnCompletion(dd);
NetworkManager.getInstance().addToQueue(r);
}
#
任意のヘルプ?
私はそれを編集したと私は、接続を閉じることができますどのように –