Reputation: 1708
I am trying to POST data to my database using WCF service but can't seem to figure what is wrong with my code, I have tried different solutions but all of it seems to fail. I am new to android development and do not know how to debug. Please help me...
Here is my code:
WCF Service:
[ServiceContract]
public interface IAllocationService
{
[OperationContract]
[WebInvoke(
Method = "POST",
UriTemplate = "StrongestWifi",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json)]
void UpdateStrongestWifi(myWifiClass myWifiClass);
}
[DataContract]
public class myWifiClass
{
[DataMember(Name = "Time")]
public string Time
{
get;
set;
}
[DataMember(Name = "SignalStrength")]
public string SignalStrength
{
get;
set;
}
[DataMember(Name = "SSID")]
public string SSID
{
get;
set;
}
Android Code:
public void onGetWebService(View v)
{
new sendPostData().execute("");
}
private class sendPostData extends AsyncTask<String, Void, String>
{
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
HttpPost request = new HttpPost(SERVICE_URI + "/StrongestWifi");
request.setHeader("Accept", "application/json");
request.setHeader("Content-type", "application/json");
JSONStringer getWifiInfo;
try {
getWifiInfo = new JSONStringer()
.object()
.key("myWifiClass")
.object()
.key("Time").value("TIME")
.key("SignalStrength").value("Strength")
.key("SSID").value("ID")
.endObject()
.endObject();
StringEntity entity = new StringEntity(getWifiInfo.toString());
request.setEntity(entity);
// Send request to WCF service
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpResponse response = httpClient.execute(request);
Log.d("WebInvoke", "Saving : " + response.getStatusLine().getStatusCode());
textDisplay.setText("Success");
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
Log Cat:
>06-01 20:36:44.071: E/SpannableStringBuilder(1071): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
>06-01 20:36:44.071: E/SpannableStringBuilder(1071): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
>06-01 20:36:44.087: E/SpannableStringBuilder(1071): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
>06-01 20:36:44.087: E/SpannableStringBuilder(1071): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
>06-01 20:36:45.157: D/WebInvoke(1071): Saving : 400
>06-01 20:36:45.157: W/System.err(1071): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
>06-01 20:36:45.157: W/System.err(1071): at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:4746)
>06-01 20:36:45.157: W/System.err(1071): at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:823)
>06-01 20:36:45.157: W/System.err(1071): at android.view.View.requestLayout(View.java:15478)
>06-01 20:36:45.157: W/System.err(1071): at android.view.View.requestLayout(View.java:15478)
>06-01 20:36:45.157: W/System.err(1071): at android.view.View.requestLayout(View.java:15478)
>06-01 20:36:45.157: W/System.err(1071): at android.view.View.requestLayout(View.java:15478)
>06-01 20:36:45.165: W/System.err(1071): at android.view.View.requestLayout(View.java:15478)
>06-01 20:36:45.165: W/System.err(1071): at android.widget.TextView.checkForRelayout(TextView.java:6457)
>06-01 20:36:45.165: W/System.err(1071): at android.widget.TextView.setText(TextView.java:3701)
>06-01 20:36:45.165: W/System.err(1071): at android.widget.TextView.setText(TextView.java:3559)
>06-01 20:36:45.165: W/System.err(1071): at android.widget.TextView.setText(TextView.java:3534)
>06-01 20:36:45.165: W/System.err(1071): at com.example.pcsprojectnetworkcodes.MainActivity$sendPostData.doInBackground(MainActivity.java:202)
>06-01 20:36:45.165: W/System.err(1071): at com.example.pcsprojectnetworkcodes.MainActivity$sendPostData.doInBackground(MainActivity.java:1)
>06-01 20:36:45.165: W/System.err(1071): at android.os.AsyncTask$2.call(AsyncTask.java:287)
>06-01 20:36:45.165: W/System.err(1071): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
>06-01 20:36:45.165: W/System.err(1071): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
>06-01 20:36:45.165: W/System.err(1071): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
>06-01 20:36:45.165: W/System.err(1071): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
>06-01 20:36:45.173: W/System.err(1071): at java.lang.Thread.run(Thread.java:856)
Upvotes: 0
Views: 210
Reputation: 12753
Move line:
textDisplay.setText("Success");
From doBackground() Method To PostExecute() Method.
Upvotes: 1