A method for requesting an uplink transmission resource in narrow band internet of things, NB-IoT, wherein the method comprises: determining, by a terminal which uses a half-duplex communication mode, that a collision occurs when the terminal sends a first request to a network device, wherein the first request is used to request the network device to schedule an uplink transmission resource for the terminal; and adjusting, by the terminal according to a preset rule, a manner of sending the first request; wherein the first request is a scheduling request, SR, or a buffer status report, BSR; wherein the determining, by a terminal, that a collision occurs when the terminal sends a first request to a network device comprises: determining, by the terminal, that the terminal is receiving or sending other data of the terminal when the first request is about to be sent; characterized in that the determining, by the terminal, that the terminal is receiving or sending other data of the terminal when the first request is about to be sent comprises: determining, by the terminal, that the terminal is performing detection on a search space when the first request is about to be sent; wherein if the terminal determines that the terminal is performing detection on the search space when the first request is about to be sent, the adjusting, by the terminal according to a preset rule, a manner of sending the first request comprises: performing, by the terminal, detection on the search space in a first time period; and sending, by the terminal, the first request to the network device in a second time period, wherein the first time period is a time period earlier than the second time period. determining, by a terminal which uses a half-duplex communication mode, that a collision occurs when the terminal sends a first request to a network device, wherein the first request is used to request the network device to schedule an uplink transmission resource for the terminal; and adjusting, by the terminal according to a preset rule, a manner of sending the first request; wherein the first request is a scheduling request, SR, or a buffer status report, BSR; wherein the determining, by a terminal, that a collision occurs when the terminal sends a first request to a network device comprises: determining, by the terminal, that the terminal is receiving or sending other data of the terminal when the first request is about to be sent; characterized in that the determining, by the terminal, that the terminal is receiving or sending other data of the terminal when the first request is about to be sent comprises: determining, by the terminal, that the terminal is receiving or sending other data of the terminal when the first request is about to be sent; characterized in that the determining, by the terminal, that the terminal is receiving or sending other data of the terminal when the first request is about to be sent comprises: determining, by the terminal, that the terminal is performing detection on a search space when the first request is about to be sent; wherein if the terminal determines that the terminal is performing detection on the search space when the first request is about to be sent, the adjusting, by the terminal according to a preset rule, a manner of sending the first request comprises: performing, by the terminal, detection on the search space in a first time period; and sending, by the terminal, the first request to the network device in a second time period, wherein the first time period is a time period earlier than the second time period. performing, by the terminal, detection on the search space in a first time period; and sending, by the terminal, the first request to the network device in a second time period, wherein the first time period is a time period earlier than the second time period.