【问题标题】:Retrofit 404 not found web api改造 404 未找到 web api
【发布时间】:2018-11-06 23:31:10
【问题描述】:

我有一个 web api 和一个应用程序。所以我想注册一个应用程序,但我有一个问题。我用天蓝色。 有我的registerapi(接口)

@FormUrlEncoded
@POST("/application/json")
public void insertUser(
        @Field("Username") String Username,
        @Field("Password") String Password,
        @Field("Email") String Email,
        Callback<Response> callback);

还有我的 mainactivty.java 页面

public class MainActivity extends AppCompatActivity {

private EditText editTextUsername;
private EditText editTextPassword;
private EditText editTextEmail;
private Button buttonRegister;
final public static String ROOT_URL = "http://bsapmusic.azurewebsites.net/api/music/register";


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    editTextUsername = (EditText) findViewById(R.id.etusername);
    editTextPassword = (EditText) findViewById(R.id.etpassword);
    editTextEmail = (EditText) findViewById(R.id.etmail);
    buttonRegister = (Button) findViewById(R.id.btnkayit);
    buttonRegister.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            insertUser();
        }
    });
}
private void insertUser()
{
    RestAdapter adapter =new RestAdapter.Builder().setEndpoint(ROOT_URL).build();
    RegisterAPI api = adapter.create(RegisterAPI.class);
    api.insertUser(
            editTextUsername.getText().toString(),
            editTextPassword.getText().toString(),
            editTextEmail.getText().toString(),
            new Callback<Response>() {
                @Override
                public void success(Response result, Response response) {
                    BufferedReader reader = null;
                    String output = "";
                    try{
                        reader=new BufferedReader(new InputStreamReader(result.getBody().in()));
                        output=reader.readLine();
                    }
                    catch (IOException e){
                        e.printStackTrace();
                    }
                    Toast.makeText(MainActivity.this,output,Toast.LENGTH_LONG).show();
                }

                @Override
                public void failure(RetrofitError error) {
                    Toast.makeText(MainActivity.this, error.toString(),Toast.LENGTH_LONG).show();
                }
            });
};

我得到改造 404 未找到。

【问题讨论】:

标签: android azure http-status-code-404 retrofit


【解决方案1】:

假设 http://bsapmusic.azurewebsites.net/api/music/register 是您 API 中注册方法的 URL:

404 表示此 url 没有 API。 你的基本网址是http://bsapmusic.azurewebsites.net/api/music/register 在此 baseurl 之后,附加了 @post 内的路径。这将产生 url:http://bsapmusic.azurewebsites.net/api/music/register/application/json。 注册方法的 url 可能是第一个 url。 baseurl 应该是 api 的根 url 的 url,在你的情况下,这可能是:http://bsapmusic.azurewebsites.net/api/。在@GET、@POST、@PUT 中,您将路径设置为特定的 api 方法。在你的情况下,这将是@POST("music/register")。您无需在此处设置发送到 API 的数据类型。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-15
  • 2012-11-22
  • 1970-01-01
  • 1970-01-01
  • 2013-08-16
相关资源
最近更新 更多