Send raw Json to retrofit 1.9
MainActivity
DetailsAPI
activity_main.xml
AndroidManifest.xml
public class MainActivity extends AppCompatActivity {
private TextView tvMain;
private String Root_url = "http://^^^^^^^^^^^^^^^^/api/registersignin";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvMain = (TextView) findViewById(R.id.main_tv);
}
/*when button clicked*/
public void reqSubmit(View view) {
mRegisterUser();
}
private void mRegisterUser() {
RestAdapter adapter = new RestAdapter.Builder().setEndpoint(Root_url).build();
DetailsAPI api = adapter.create(DetailsAPI.class);
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("memberId", "109sA2mae25SkAQ2KF0tblAmTmJf0iJYUcNKZRf4lLERRRR3");
jsonObject.put("gender", 1);
jsonObject.put("genderPref", 2);
jsonObject.put("dob", "2017/10/17");
jsonObject.put("countryid", "1456356");
jsonObject.put("cityId", 113);
} catch (JSONException e) {
e.printStackTrace();
}
TypedInput in = null;
try {
in = new TypedByteArray("application/json", jsonObject.toString().getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
api.regUser2(in, new Callback<Object>() {
@Override
public void success(Object jsonObject, Response response) {
Toast.makeText(MainActivity.this, "Login successful!", Toast.LENGTH_SHORT).show();
Log.d("Lokesh", "Login successful");
tvMain.setText(jsonObject.toString());
}
@Override
public void failure(RetrofitError error) {
Log.d("Lokesh", "Login fail::" + error.toString());
Toast.makeText(MainActivity.this, "Login fail!", Toast.LENGTH_SHORT).show();
tvMain.setText(error.getMessage());
}
});
}
}
public interface DetailsAPI {
@FormUrlEncoded
@POST("/regact")
void regUser(@Field("memberId") String mem,
@Field("gender") int gender,
@Field("genderPref") int genderPref,
@Field("dob") String dob,
@Field("countryid") String id,
@Field("cityId") int city, Callback<JsonObject> callback);
@POST("/regact")
abstract void regUser2(@Body TypedInput body, Callback<Object> callback);
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="send request"
android:onClick="reqSubmit"/>
<TextView
android:id="@+id/main_tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22sp"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.excelsoftservices.user2.fieldparamretro">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
Output:
Logic used : Jake Wharton
https://stackoverflow.com/questions/21398598/how-to-post-raw-whole-json-in-the-body-of-a-retrofit-request