Reputation: 139
I am using wordpress in my website.In one of my xml file user have to fill contents like books price etc then i want to post that data from android App to website when user clicks on post button. How can i do that. It would be very helpful if you provide any information regarding this. following is my code
public class Post_Ads extends Activity {
private static final int SELECT_PHOTO = 100;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_post__ads);
// do action when click on browse button
Button button = (Button) findViewById(R.id.browse_btn);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, SELECT_PHOTO);
}
});
Button btnpost = (Button) findViewById(R.id.post_btn);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
}
});
}
// select photo from phone gallery
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
switch(requestCode) {
case SELECT_PHOTO:
if(resultCode == RESULT_OK){
Uri selectedImage = imageReturnedIntent.getData();
InputStream imageStream;
try {
imageStream = getContentResolver().openInputStream(selectedImage);
Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public void postData(String title, String price, String city, String state, String country,String zip, String description, String image) {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("site url");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
nameValuePairs.add(new BasicNameValuePair("Title", title));
nameValuePairs.add(new BasicNameValuePair("price", price));
nameValuePairs.add(new BasicNameValuePair("City", city));
nameValuePairs.add(new BasicNameValuePair("State", state));
nameValuePairs.add(new BasicNameValuePair("Country", country));
nameValuePairs.add(new BasicNameValuePair("Zip/Postal Code", zip));
nameValuePairs.add(new BasicNameValuePair("Description", description));
nameValuePairs.add(new BasicNameValuePair("Image", image));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_post__ads, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
return true;
}
return super.onOptionsItemSelected(item);
}
}
activity_post_ads.xml file
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|left"
android:text="@string/PostYourAds" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
<LinearLayout android:layout_width="wrap_content" android:layout_height="fill_parent" >
<TextView
android:id="@+id/title"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:text="@string/Title" />
<EditText
android:id="@+id/title1"
android:layout_width="210dp"
android:layout_height="wrap_content"
android:gravity="left"
android:hint="@string/none" >
<requestFocus />
</EditText>
</LinearLayout>
<LinearLayout android:layout_width="wrap_content" android:layout_height="fill_parent" >
<TextView
android:id="@+id/price"
android:layout_width="67dp"
android:layout_height="wrap_content"
android:text="@string/price" />
<EditText
android:id="@+id/price1"
android:layout_width="210dp"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/none"
android:inputType="number" >
<requestFocus />
</EditText>
</LinearLayout>
<requestFocus />
</EditText>
</LinearLayout>
<LinearLayout android:layout_width="wrap_content" android:layout_height="fill_parent" >
<TextView
android:id="@+id/state"
android:layout_width="68dp"
android:layout_height="wrap_content"
android:text="@string/state" />
<EditText
android:id="@+id/state1"
android:layout_width="210dp"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/none" >
<requestFocus />
</EditText>
</LinearLayout>
<LinearLayout android:layout_width="wrap_content" android:layout_height="fill_parent" >
<TextView
android:id="@+id/zip"
android:layout_width="73dp"
android:layout_height="match_parent"
android:text="@string/zip" />
<EditText
android:id="@+id/zip1"
android:layout_width="210dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:inputType="number"
android:hint="@string/none">
<requestFocus />
</EditText>
</LinearLayout>
<LinearLayout android:layout_width="wrap_content" android:layout_height="fill_parent" >
<TextView
android:id="@+id/description"
android:layout_width="88dp"
android:layout_height="30dp"
android:text="@string/description" />
<EditText
android:id="@+id/editText1"
android:layout_width="210dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:hint="@string/none"
android:inputType="textMultiLine" />
</LinearLayout>
<LinearLayout android:layout_width="wrap_content" android:layout_height="fill_parent" >
<TextView
android:id="@+id/Image"
android:layout_width="73dp"
android:layout_height="33dp"
android:text="@string/image" />
<EditText
android:id="@+id/image1"
android:layout_width="134dp"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/none" >
<requestFocus />
</EditText>
<Button
android:id="@+id/browse_btn"
style="?android:attr/buttonStyleSmall"
android:layout_width="71dp"
android:layout_height="wrap_content"
android:text="@string/browse_btn" />
</LinearLayout>
<Button
android:id="@+id/post_btn"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/post"
android:onClick="postData()" />
</LinearLayout>
Upvotes: 3
Views: 680
Reputation: 508
You can send values to wbsite through webservice call from android. Use either POST or GET method. Here is the code to send data by HttpPost method,
String url = "your_webservice_URL";
try
{
HttpPost loginHttpPost = new HttpPost(url);
HttpContext localContext = new BasicHttpContext();
MultipartEntity multipartContent = new MultipartEntity();
multipartContent.addPart("parameter1", new StringBody(value1));
multipartContent.addPart("parameter2", new StringBody(value2));
loginHttpPost.setEntity(multipartContent);
HttpClient objHttpClient = new DefaultHttpClient();
HttpResponse response = objHttpClient.execute(loginHttpPost,localContext);
}
catch (IOException e) {
e.printStackTrace();
}
Here is the code to send data by HttpGet method,
String webserviceurl = "your_webservice_URL";
List<NameValuePair> lstAddToken = new ArrayList<NameValuePair>();
lstAddToken.add(new BasicNameValuePair("parameter1",value1));
lstAddToken.add(new BasicNameValuePair("parameter2",value2));
//add parameters to the URL
webserviceurl += "?";
String paramString = URLEncodedUtils.format(lstAddToken, "utf-8");
webserviceurl += paramString;
//Call the webservice using HttpGet with parameters and get the response from webservice
try
{
HttpGet loginHttpget = new HttpGet(webserviceurl);
HttpClient objHttpClient = new DefaultHttpClient();
HttpResponse response = objHttpClient.execute(loginHttpget);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}
catch (Throwable t)
{
Log.e("log_tag", "Error converting result "+t.toString());
}
Upvotes: 0
Reputation: 6881
You shold know about HTTP classes first. Example code for posting data to server from your Android app would look like below.
public void postData(String bookname, String price) {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("your site url");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
nameValuePairs.add(new BasicNameValuePair("book", bookname));
nameValuePairs.add(new BasicNameValuePair("price", price));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
So List<NameValuePair> nameValuePairs
is going to hold data that should go to server through POST method. Pass your values like below.
nameValuePairs.add(new BasicNameValuePair("book", bookname));
nameValuePairs.add(new BasicNameValuePair("price", price));
Basically the above function should be called when a button is clicked like below,
postbutton.setOnClickListener(new OnClickListener() {
public void onClick(View v)
{
// call postData here.
}
});
Make sure that you have set all the things at your site to process these requests. Note that for some newer or recent android versions you need to have AsyncTask for performing Network operations.
Edit: Change your oncreate method to code below. You have not called the postData(....) method.Thats why you didn't get. One more thing, To upload files to a server you need to have different code look here you will get some idea.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_post__ads);
// do action when click on browse button
Button button = (Button) findViewById(R.id.browse_btn);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, SELECT_PHOTO);
}
});
Button btnpost = (Button) findViewById(R.id.post_btn);
btnpost.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
postData("title","price", "city", "state","country","zip", "description", "image");
}
});
}
Upvotes: 1