36 lines
833 B
Java
36 lines
833 B
Java
|
package org.joinmastodon.android.api;
|
||
|
|
||
|
import com.google.gson.JsonIOException;
|
||
|
|
||
|
import java.io.IOException;
|
||
|
import java.io.OutputStreamWriter;
|
||
|
import java.nio.charset.StandardCharsets;
|
||
|
|
||
|
import okhttp3.MediaType;
|
||
|
import okhttp3.RequestBody;
|
||
|
import okio.BufferedSink;
|
||
|
|
||
|
public class JsonObjectRequestBody extends RequestBody{
|
||
|
private final Object obj;
|
||
|
|
||
|
public JsonObjectRequestBody(Object obj){
|
||
|
this.obj=obj;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public MediaType contentType(){
|
||
|
return MediaType.get("application/json;charset=utf-8");
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void writeTo(BufferedSink sink) throws IOException{
|
||
|
try{
|
||
|
OutputStreamWriter writer=new OutputStreamWriter(sink.outputStream(), StandardCharsets.UTF_8);
|
||
|
MastodonAPIController.gson.toJson(obj, writer);
|
||
|
writer.flush();
|
||
|
}catch(JsonIOException x){
|
||
|
throw new IOException(x);
|
||
|
}
|
||
|
}
|
||
|
}
|