Android无法连接到django后端

问题描述 投票:0回答:2

我可以从Django后端的管理面板中手动上传图片,但无法从Android端进行连接。

我看过多种解决方案,也尝试在Django API中使用String DJANGO_SITE =“ https://10.0.2.2:8000/image/”] >>,但每次都无法连接。为了运行Django后端,我输入了[[python3 manage.py runserver 192.168.20.106:8080。在这里,192.168.20.106是我路由器的IP地址。我得到的确切错误是

java.net.ConnectException:无法连接到/192.168.20.106:8000

这是我在android部分中的uploadphoto()方法的代码

private void uploadFoto(Bitmap bmp) { File imageFile = savebitmap(bmp); // converts bitmap to file Log.e("The file to be send is",imageFile+""); Retrofit retrofit = new Retrofit.Builder() .baseUrl(DjangoApi.DJANGO_SITE) .addConverterFactory(GsonConverterFactory.create()) .build(); Log.e("Django post API", retrofit+""); DjangoApi postApi= retrofit.create(DjangoApi.class); Log.e("Django post API", postApi+""); RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/data"), imageFile); MultipartBody.Part multiPartBody = MultipartBody.Part .createFormData("model_pic", imageFile.getName(), requestBody); Call<RequestBody> call = postApi.uploadFile(multiPartBody); Log.e("The call is ",call+""); call.enqueue(new Callback<RequestBody>() { @Override public void onResponse(Call<RequestBody> call, Response<RequestBody> response) { Log.e("response", response+""); Log.d("good", "good"); } @Override public void onFailure(Call<RequestBody> call, Throwable t) { Log.e("response", t+""); Log.d("fail", "fail"); } }); } }

这是我的Django API部分的代码:

public interface DjangoApi { String DJANGO_SITE = "https://192.168.20.106:8000/image/"; @Multipart @POST("upload/") Call<RequestBody> uploadFile(@Part MultipartBody.Part file); }

有人可以在这方面帮助我吗?

我可以从Django后端的管理面板中手动上传图片,但无法从Android端进行连接。我已经看到了多种解决方案,并且还尝试了String DJANGO_SITE =“ https://10.0 ....

android django ip connect
2个回答
0
投票
如下所示从界面中删除最后一个斜杠:

0
投票
正如您在问题中提到的,您已经运行python3 manage.py runserver 192.168.20.106:8080来运行使用Django开发的后端。我认为这个问题与Android无关,可能是IPV6问题或防火墙问题。检查是否正在运行防火墙,如果关闭,则将其关闭。如果它与IPv6关联,请运行以下命令,它应该可以工作:
© www.soinside.com 2019 - 2024. All rights reserved.