Why did the response get null response?

I use snmp4j to get the getnext result. the snmp version is 3.When I execute the command in net-snmp,the result will return quickly:
SNMPv2-SMI::enterprises. = Timeticks: (157736000) 18 days, 6:09:20.00.
But when I use java code to search the result, I find that responseEvent.getResponse() is null.At first,I think the default time may not enough,so I try to set target timeout by 10 second,but it still get null response.So under what circumstances will the interface return a null response?
responseEvent = snmp.getNext(pdu, target);
The responseEvent is here:{"error":null,"peerAddress":null,"request":{"bERLength":50,"bERPayloadLength":48,"confirmedPdu":true,"contextEngineID":{"bERLength":17,"bERPayloadLength":15,"dynamic":false,"exception":false,"printable":false,"syntax":4,"syntaxString":"OCTET STRING","value":"gAAA6ARDTlgyMDQwMEdL"},"contextName":{"bERLength":2,"bERPayloadLength":0,"dynamic":false,"exception":false,"printable":true,"syntax":4,"syntaxString":"OCTET STRING","value":""},"errorIndex":0,"errorStatus":0,"errorStatusText":"Success","maxRepetitions":0,"nonRepeaters":0,"requestID":{"bERLength":6,"bERPayloadLength":6,"dynamic":false,"exception":false,"syntax":2,"syntaxString":"Integer32","value":1659404529},"responsePdu":false,"type":-95,"variableBindings":[{"bERLength":13,"bERPayloadLength":11,"exception":false,"oid":{"bERLength":9,"bERPayloadLength":9,"dynamic":false,"exception":false,"syntax":6,"syntaxString":"OBJECT IDENTIFIER","valid":true,"value":[1,3,6,1,2,1,1,3]},"syntax":5,"variable":{"bERLength":2,"bERPayloadLength":2,"dynamic":false,"exception":false,"syntax":5,"syntaxString":"Null"}}]},"response":null,"userObject":null}

It seems that you are sending variable values in the GET* request. That is not allowed by the SNMP standard, maybe the agent does not like that a does not respond.

Why SNMP standard do not allow by sending variable values in the GET* request? I do the same request format and one machine’s response is ok, but the other machine does not response.

Sending values in GET* requests is simply unnecessary overhead and costs bandwidth and CPU cycles (unnecessary CO2 footprint). That is why it is not allowed in the standard.
Some systems simply do not check it and respond nevertheless, ignoring the values.

Can you show me a example what’s Sending values in GET* requests? I can not understand Sending values in GET* requests or the right way to send request ?