当前位置: 首页 > 知识库问答 >
问题:

上传照片并通过RestApi发送

施彬郁
2023-03-14

我得到了这个endpoint,但我不知道如何从电话画廊拍照并通过这个endpoint发送此图像?

共有1个答案

柳修为
2023-03-14

试试这个代码…

添加以下dependency到应用程序级别分级文件..

   implementation 'com.squareup.okhttp3:logging-interceptor:3.4.1'
implementation 'com.squareup.retrofit2:retrofit:2.3.0'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'

然后定义改型对象…

public class ApiClient {
private final static String BASE_URL = "https://api.github.com";

public static ApiClient apiClient;
private Retrofit retrofit = null;

public static ApiClient getInstance() {
    if (apiClient == null) {
        apiClient = new ApiClient();
    }
    return apiClient;
}

//private static Retrofit storeRetrofit = null;

public Retrofit getClient() {
    return getClient(null);
}


private Retrofit getClient(final Context context) {

    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
    interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
    OkHttpClient.Builder client = new OkHttpClient.Builder();
    client.readTimeout(60, TimeUnit.SECONDS);
    client.writeTimeout(60, TimeUnit.SECONDS);
    client.connectTimeout(60, TimeUnit.SECONDS);
    client.addInterceptor(interceptor);
    client.addInterceptor(new Interceptor() {
        @Override
        public okhttp3.Response intercept(Chain chain) throws IOException {
            Request request = chain.request();

            return chain.proceed(request);
        }
    });

    retrofit = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .client(client.build())
            .addConverterFactory(GsonConverterFactory.create())
            .build();


    return retrofit;
}
}
public interface ApiInterface {
@Multipart
@POST("/signup/")
Call<UserResponseVo> registerUser(@PartMap Map<String, RequestBody> map);
}
 private void uploadImage() {
    ApiInterface apiInterface= ApiClient.getInstance().getClient().create(ApiInterface.class);
    file=new File(mAttachmentFilePath);
    RequestBody mFile = RequestBody.create(MediaType.parse("image/*"), file);
    MultipartBody.Part fileToUpload = MultipartBody.Part.createFormData("profile_pic", file.getName(), mFile);
    RequestBody userObjectId = RequestBody.create(MediaType.parse("text"), "HZucg1m6Gz");



    Call<UserProfileResponse> userProfileResponseCall=apiInterface.uploadImage(fileToUpload,userObjectId);
    showProgress();
    userProfileResponseCall.enqueue(new Callback<UserProfileResponse>() {
        @Override
        public void onResponse(Call<UserProfileResponse> call, Response<UserProfileResponse> response) {
            if (response!=null && response.body()!=null && response.isSuccessful()){
                closeProgress();
                Toast.makeText(getApplicationContext(),response.body().getMsg(),Toast.LENGTH_LONG).show();
                Log.d("Response Message::",response.body().getMsg());
                Glide.with(MainActivity.this).load(response.body().getAvatarUrl()).into(mIvServerImage);
            }
        }

        @Override
        public void onFailure(Call<UserProfileResponse> call, Throwable t) {
            closeProgress();
            Log.d("Error::",t.getMessage());
        }
    });
}
 类似资料:
  • 操作步骤: ①在"图层管理"模块,选择一个带有数据的图层。 ②点击记录弹出窗口。 ③点击"上传图片"按钮。 ④可以添加标注地点的照片信息,支持从本地上传和选择网络上的图片以及历史图片。 ⑤选择图片,进行添加图片。 ⑥点击"绑定图片"按钮。 提示: ●目前一个网点支持上传20张照片。 ●每张图片大小不超过5M。 操作动图: [查看原图]

  • 问题内容: 我尝试了不同的方法来通过imgur上传和检索链接,但是尽管查看了imgur api,但都没有成功。 http://api.imgur.com/examples#uploading_java 但是以下方法部分有效。.我试图检索, 错误:如果发生任何错误。指向图像的链接:指向托管图像的链接删除链接:删除到托管图像的链接 但是我只得到“删除链接”,因为其他的都是空白,请检查一下: 我最后得到

  • Instagram最近改变了他们的API政策,允许开发者通过自己的应用程序将图片发布到Instagram平台。我们以前使用的几种其他技术来实现这一目标。其中之一是调用Instagram应用程序,该应用程序基本上可以打开Instagram并在那里进行共享。关于如何做到这一点的教程可以在这里看到:如何从你自己的iOS应用程序分享图像到Instagram 然而,有几个应用程序允许直接共享到Instagr

  • 问题内容: 在过去的几天里,我一直在努力用jQuery和AJAX提交表单。我面临的问题是在表单字段中上传图像。 我的表格是这样的: 我的用于获取表单值的jQuery脚本如下所示: 但是,如果image返回null,则返回除image 1以外的所有字段值。 如何存储在数据数组中? 我要存储,以便可以通过AJAX将值发送到服务器。 问题答案: 对于上传单个图像,像这样 对于多张图片,您将不得不循环不同

  • 我试图构建一个,它包括两个按钮,一个用于用相机拍照并上传到Firebase存储,另一个用于从Firebase存储下载图像并在上显示。 现在,我被上传功能卡住了。我可以把照片保存到应用程序目录中。我想上传保存的图片到Firebase存储。

  • 我正在尝试从sdcard拍摄照片,它是工作的情况下,当用户选择从谷歌照片,但给出一个curserindexoutofbound错误时,从任何其他应用程序,如gallery或file Manager。这是一段代码。 OnActivity Result`{if(requestCode==PICK_IMAGE_REQUEST&&resultCode==activity.result_ok&data!=n