我有一个问题要发送 电子邮件和名称和电话同时到服务器php
有解决方案吗? 我工作的是在底部
............................................... .........
public class MainActivity extends Activity {
EditText name;
EditText email;
EditText tlf;
Button btn;
string resultat=null;
InputStream is = null;
StringBuilder sb = null ;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.home_layout);
name= (EditText)findViewById(R.id.name);
email = (EditText)findViewById(R.id.email);
tlf = (EditText)findViewById(R.id.tlf);
btn = (Button)findViewById(R.id.btn);
}
public void envoyerMessage (View v){
HttpClient client= new DefaultHttpClient();
HttpPost post=new HttpPost("http://xxxxcom/app.php");
String nam = name.getText().toString();
String mail = email.getText().toString();
String fon = tlf.getText().toString();
if(log.length() >0){
try {
List<NameValuePair> donnees = new ArrayList<NameValuePair>(1);
donnees.add(new BasicNameValuePair("id", nam ));
donnees.add(new BasicNameValuePair("mal", mail ));
donnees.add(new BasicNameValuePair("fn", fon ));
post.setEntity(new UrlEncodedFormEntity(donnees));
client.execute(post);
login.setText("");
Toast.makeText(this, "valid login", Toast.LENGTH_SHORT).show();
谢谢
答案 0 :(得分:0)
我的建议是使用Volley,这是一个非常小的样本:
Jar到Volley。
但你可以试试这个Util:
public static class Connector extends AsyncTask<String, Object, Object> {
private static final int DEFAULT_CNN_TIME_OUT = 1000 * 20;
private static String USER_AGENT;
private String mUrl;
private byte[] mBody;
public Connector( Context _cxt ) {
super();
if( TextUtils.isEmpty( USER_AGENT ) ) {
// Without this, the default provided by API will be like "Dalvik/1.6.0 (Linux; U; Android 4.0.4; BASE_Lutea_3 Build/IMM76D)" .
USER_AGENT = new WebView( _cxt ).getSettings().getUserAgentString();
}
}
/*
* Convenient function to execute the connecting task.
*/
public void submit( String _url ) {
this.execute( _url );
}
@Override
protected Object doInBackground( String... _params ) {
mUrl = _params[0];
Object ret = null;
HttpURLConnection conn = null;
try {
synchronized( Connector.class ) {
InputStream in = null;
conn = connect( mUrl );
// if we don't do conn.setRequestProperty( "Accept-Encoding", "gzip" ), the wrapper GZIPInputStream can be removed.
onConnectorInputStream( in = new GZIPInputStream( conn.getInputStream() ) );
in.close();
in = null;
}
}
catch( Exception _e ) {
ret = _e;
}
finally {
if( conn != null ) {
conn.disconnect();
conn = null;
}
}
return ret;
}
@Override
protected void onPostExecute( Object _result ) {
if( _result instanceof SocketTimeoutException ) {
onConnectorConnectTimout();
} else if( _result instanceof ConnectorPostConnectException ) {
onConnectorError( ((ConnectorPostConnectException) _result).getStatus() );
} else if( _result instanceof Exception ) {
onConnectorInvalidConnect( (Exception) _result );
} else if( _result == null ) {
onConnectorFinished();
}
handleEstablishedConnection();
}
/*
* Internal help and test function.
*/
private static void handleEstablishedConnection() {
try {
Log.v( TAG, "Connection is established." );
CookieStore cs = CookieManager.getInstance().getCookieStore();
if( cs != null ) {
Log.v( TAG, "------------cookies------------" );
List<Cookie> list = cs.getCookies();
if( list != null && list.size() > 0 ) {
StringBuilder cookieBuilder = new StringBuilder();
for( Cookie c : list ) {
cookieBuilder
.append( c.getName().trim() )
.append( "=>" )
.append( c.getValue().trim() )
.append( "=>" )
.append( c.getDomain() );
Log.v( TAG, cookieBuilder.toString() );
cookieBuilder.delete( 0, cookieBuilder.length() - 1 );
}
cookieBuilder = null;
} else {
Log.v( TAG, "Empty cookies." );
}
cs = null;
list = null;
}
}
catch( Exception _e ) {
Log.e( TAG, "Error in handleEstablishedConnection: " + _e.getMessage() );
}
finally {
}
}
private HttpURLConnection connect( String _urlStr ) throws Exception {
URL url = null;
HttpURLConnection conn = null;
try {
try {
url = new URL( _urlStr );
}
catch( MalformedURLException e ) {
throw new IllegalArgumentException( "Invalid url: " + _urlStr );
}
conn = preConnect( url );
doConnect( conn );
conn = postConnect( conn );
}
catch( Exception _e ) {
throw _e;
}
finally {
url = null;
}
return conn;
}
private HttpURLConnection preConnect( URL url ) throws Exception {
HttpURLConnection conn;
conn = (HttpURLConnection) url.openConnection();
conn.setUseCaches( false );
// http://www.aswinanand.com/2009/01/httpurlconnectionsetfollowredirects-bug/comment-page-1/#comment-13330
// see the url to learn more about the problem of redirect
conn.setInstanceFollowRedirects( false );
conn.setDoOutput( true );// allows body
mBody = getBody();
if( hasBody() ) {
conn.setFixedLengthStreamingMode( mBody.length );
}
conn.setRequestMethod( "POST" );
conn.setRequestProperty( "Connection", "Keep-Alive" );
conn.setRequestProperty( "Content-Type", "application/x-www-form-urlencoded;charset=UTF-8" );
conn.setRequestProperty( "User-Agent", USER_AGENT );
conn.setRequestProperty( "Accept-Encoding", "gzip" );// force server to send in Content-Encoding: gzip .
String cookies = onCookie();
if( !TextUtils.isEmpty( cookies ) ) {
conn.setRequestProperty( "Cookie", onCookie() );
cookies = null;
}
conn.setConnectTimeout( onSetConnectTimeout() );
return conn;
}
/*
* Convenient function to check the exiting of body.
*/
private boolean hasBody() {
return mBody != null && mBody.length > 0;
}
private void doConnect( HttpURLConnection conn ) throws Exception {
OutputStream out; // the outgoing stream
out = conn.getOutputStream();
if( hasBody() ) {
out.write( mBody );
}
out.close();
out = null;
}
private HttpURLConnection postConnect( HttpURLConnection conn ) throws Exception {
int status = conn.getResponseCode();
if( status != HttpURLConnection.HTTP_OK ) {
throw new ConnectorPostConnectException( status );
} else {
CookieManager.getInstance().put( conn.getURL().toURI(), conn.getHeaderFields() );
return conn;
}
}
private byte[] getBody() {
byte[] body = null;
String bodyString = onSetBody();
if( !TextUtils.isEmpty( bodyString ) ) {
body = bodyString.getBytes();
}
return body;
}
// ------------------------------------------------
// Overrides methods here
// ------------------------------------------------
protected int onSetConnectTimeout() {
return DEFAULT_CNN_TIME_OUT;
}
protected String onCookie() {
return null;
}
protected String onSetBody() {
return null;
}
protected void onConnectorConnectTimout() {
Log.e( TAG, "Handling connector timeout gracefully." );
}
protected void onConnectorError( int _status ) {
Log.e( TAG, "Handling connector error(responsed) gracefully: " + _status );
}
protected void onConnectorInvalidConnect( Exception _e ) {
Log.e( TAG, "Handling connector invalid connect(crash) gracefully: " + _e.toString() );
}
/*
* Read data here. The function runs in thread. To hook on UI thread use onConnectorFinished()
*/
protected void onConnectorInputStream( InputStream _in ) {
}
/*
* Last handler for a success connection
*/
protected void onConnectorFinished() {
}
}
使用此util:
mConn = new Util.Connector( getApplicationContext() ) {
@Override
protected String onSetBody() {
String body = null;
try {
StringBuilder bodyBuilder = new StringBuilder();
bodyBuilder
.append( "id=" )//.append(...)
.append( '&' )
.append( "mal=" )//.append(...)
body = bodyBuilder.toString();
bodyBuilder = null;
}
catch( Exception _e ) {
Log.e( TAG, "Error in onCreateBody: " + _e.getMessage() );
}
finally {
}
return body;
}
@Override
protected int onSetConnectTimeout() {
return 10 * 1000;
}
@Override
protected void onConnectorInvalidConnect( Exception _e ) {
super.onConnectorInvalidConnect( _e );
onErr();
}
@Override
protected void onConnectorError( int _status ) {
super.onConnectorError( _status );
onErr();
}
protected void onConnectorConnectTimout() {
super.onConnectorConnectTimout();
onErr();
}
private void onErr() {
//mConn.submit( URL );
};
@Override
protected void onConnectorFinished() {
}
@Override
protected void onConnectorInputStream( InputStream _in ) {
}
};
mConn.submit( URL );